アットウィキロゴ
ProgramingTips
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

ProgramingTips

ジャンプ処理2 ~ボタンを押す長さによって…~

最終更新:

Bot(ページ名リンク)

- view
管理者のみ編集可

アクション>ジャンプ処理2 ~ボタンを押す長さによって…~

よくジャンプ処理でボタンを押す長さによって高さが変わる
という処理です。
マリオとかで使われています。

ソースコード



解説

#define PUSH_GRAVITY 0.25
#define FALL_RATE 8.0

別にPUSH_GRAVITYにしなくても、
GRAVITYのままで数値を変えるだけでもいいかもしれません。

if(!JumpFlag)
{
 	if(LunaPad::GetState(0, PAD_STATE_PUSH, PAD_BUTTON_01) )
	{
	   AccY = -JUMP_POWER;
	   JumpFlag = TRUE;
          Gravity = PUSH_GRAVITY;
	}
				
}
この変更点を加えないとうまくジャンプ処理ができません。

if(JumpFlag)
{
   if(LunaPad::GetState(0, PAD_STATE_PULL, PAD_BUTTON_01) )
   {
       if(AccY < 0)
       {
             Gravity = -AccY / FALL_RATE;
       }
   }	
}

ボタンを離した瞬間に、重力を加える処理です。
(PUSH_STATE_PULL:ボタンを離した状態)

時々、謎の浮遊現象が起きますが、
原因は、今のところわかっておりません。
誰か、分かる方がいたら教えていただけると幸いです。

<アクションに戻る


参考書籍:逆引きゲームプログラミング

記事メニュー
最近更新されたスレッド
ウィキ募集バナー