解決済みのQ&A
C言語でのゲーム制作に関して
C言語でのゲーム制作に関して
Cで自作のゲームを制作しているのですが、
キャラに重力をつけるのがわからず困っています。
MAPの配置やキャラの描画はできています、
でもキャラはずっと浮いた状態で重力(ジャンプとかもできる)を
つけるよう試行錯誤しているのですがどうにもうまくいかず
貫通したり消えたりします・・・。
重力(落ちる、ジャンプに対応)するにはどのようにプログラミングすれば
よいのでしょうか?
ご教授よろしくお願いします。
-
- 質問日時:
- 2010/8/23 14:10:48
-
- 解決日時:
- 2010/8/24 15:52:28
-
- 閲覧数:
- 445
- 回答数:
- 2
-
- お礼:
- 知恵コイン
- 250枚
ベストアンサーに選ばれた回答
初めまして。
重力、例えばですが、「ジャンプ」の動作の場合ならですが、
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
ベストアンサー以外の回答
(1件中1〜1件)
なにかライブラリを使っているんでしょうか。(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段ジャンプはできないけれど敵を踏ん...
質問した人からのコメント
見た感じは簡単そうなのですが組むとなると時間かかりそうですね;
詳しく書いていただいてありがとうございます。
がんばってみます。
const_unsigned_charさん
ライブラリはDXを使用しています。
考えはわかるのですがプログラムにするとなると
おかしいことになってしまって(汗
リンク参考にさしていただきます。
回答ありがとうございます。