ここから本文です

解決済みのQ&A

C言語でのゲーム制作に関して

unagiusausaさん

C言語でのゲーム制作に関して

Cで自作のゲームを制作しているのですが、
キャラに重力をつけるのがわからず困っています。
MAPの配置やキャラの描画はできています、
でもキャラはずっと浮いた状態で重力(ジャンプとかもできる)を
つけるよう試行錯誤しているのですがどうにもうまくいかず
貫通したり消えたりします・・・。
重力(落ちる、ジャンプに対応)するにはどのようにプログラミングすれば
よいのでしょうか?
ご教授よろしくお願いします。

違反報告

  • 質問日時:
    2010/8/23 14:10:48
  • 解決日時:
    2010/8/24 15:52:28
  • 閲覧数:
    445
    回答数:
    2
  • お礼:
    知恵コイン
    250枚

ベストアンサーに選ばれた回答

ganash_chocoさん

初めまして。

重力、例えばですが、「ジャンプ」の動作の場合ならですが、

Zキーでキャラクターが空中に浮く



徐々に下がってく
「徐々に」、つまりstaticを使う事で値が保持されたまま、
下がっていく様にすれば大丈夫です。


簡易プログラムにしますね。
宣言等は多少省略させて頂く形になります。

static float velocity = 0.0f;

if( キー押す )
{
velocity = 2.0f;
}

if( ジャンプ中なら )
{
// ここが重力です。徐々に下げていく
velocity -= 0.2f

// そしてキャラクターの座標( y座標 )に値渡す
charPos.y += velocity;
}

if( 地面の座標(例えば0になったら等) )
{
// ここで0にしなかったら、地面の下まで行くので
velocity = 0;

// ジャンプのフラグオフに
isJumpFlag = false;
}


宣言等はそれなりに省略していますし、
地面との当たり判定等は殆ど考慮しておりません。

また、velocityに関しては、c++等の演算子オーバーロード
等使用して、ベクトル演算や行列演算を使って頂かないと、
思った様な動作はしないかと思います。

例えばですが、
static float velocity;
については、
static Vector velocity;
等の様に、自作した物で宣言したりして、
オーバーロードの値でやっていくのが、
より現実に近い動作をしてくれます。

それなりの動作で宜しければ、特に
そういう事はせずにやっても問題ありません。


こんな回答で役に立つか分かりませんが、
少しでも参考にして頂ければと思います。

  • 回答日時:2010/8/23 15:56:46

質問した人からのコメント

  • ganash_chocoさん
    見た感じは簡単そうなのですが組むとなると時間かかりそうですね;
    詳しく書いていただいてありがとうございます。
    がんばってみます。
    const_unsigned_charさん
    ライブラリはDXを使用しています。
    考えはわかるのですがプログラムにするとなると
    おかしいことになってしまって(汗
    リンク参考にさしていただきます。
    回答ありがとうございます。
  • コメント日時:2010/8/24 15:52:28

グレード

ベストアンサー以外の回答

(1件中1〜1件)

 

const_unsigned_charさん

なにかライブラリを使っているんでしょうか。(DirectX?DXライブラリ?)

重力は単純にループごとにキャラクターの座標を下に下げていけばいいのです。
ジャンプは単に上に持ち上げるだけでも良いですし、ジャンプボタンを押されたらジャンプパワーを設定し徐々に上に上げていってもOKです。

たとえばDXライブラリだとこういうサンプルがあります。他のライブラリでも応用できると思うので見てみてください。
http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N2

  • 回答日時:2010/8/23 16:14:53

関連度の高い質問

[一覧]
HSP ジャンプアクションでわからないこと。ジャンプアクションでドンキーコング、マリオのようなゲーム...
hspでゲームを作っていますline関数で空中に線を引いてキャラがジャンプしてその線の上に乗るようにした...
HSP3 わからない移動の横移動でダッシュがしたいのですがどうやったらいいのでしょうか。できれば下ので...
マリオ系?的なものを作っています*ueで、重力のようなものをつけたジャンプのようなものを作りたいので...
ゲームなどをつくる際プログラミング以上ツクール系未満の中間てきな難易度の手軽なツールはないもので...

あなたにおすすめの解決済みの質問

ジャンプの高さを変えたいのですが...下のサイトのジャンプはyukinousagi24さんが考えたため、どこを変...
ジャンプリンクで映像がカクカク途切れ途切れ・・・無線LANをかえれば改善しますか?現在の状態は・・・1...
いま、ジャンプアクションゲームを作っています。そのジャンプの部分にマリオのようなボタン長く押すほ...
サブルーチンジャンプができる無料のPHPエディタを探してます。PHPを書く仕事をしてて、普段はEclipseを...
HSPでジャンプアクションを作るときに、普通にボタンを2回押しても2段ジャンプはできないけれど敵を踏ん...
PR
Yahoo!知恵袋のQ&Aアプリが登場! さくさく検索、かんたんに質問や回答ができる! Yahoo!知恵袋アプリ

最新ランキング

おすすめの知恵ノート

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。


お得情報

QUOカード2,000円分をゲット!
ガリバーのお店で査定・お見積りで
貰える!《限定4,000名様》

その他のキャンペーン

知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する