トップページへ
 自機の移動
・2段ジャンプ サンプルプログラム 2段ジャンプ  | 利用規約 | 使い方 | 操作方法 |
■説明
一度ジャンプした後、自機が浮いている間にスペースキーを押す
ことで2段ジャンプすることができます。ブロックから落下したとき
にもジャンプできます。

■参考
自機の移動 - ジャンプ動作
サンプルプログラム 2段ジャンプ
■プログラム解説
空中に自機がいるときにスペースキーが押された場合、一度だけジャンプする
ようにします。2段ジャンプさせたいときの条件を考えてみます。

 1.自機が空中にいる → wY==0
 2.スペースキーが押された → getkey(32)==1
 3.空中でのジャンプは1回だけにする → (2段ジャンプの判定変数jmp2を導入)

1〜3を満たすように、プログラムを書いてみます。

   if (wY== 0 && getkey(32)==1 && jmp2==0)
                  {vy=-7;jmp2=1;appear(new effect(x,y,f));}

  *jmp2は2段ジャンプしたかのフラグで、すでにジャンプしていれば1が入ります。
  *判定条件にjmp2==0が入っているので、空中でジャンプしていない場合のみ
   処理が実行されます。
  *{ } カッコ内の処理が2段ジャンプの具体的内容で、vy=-7でジャンプ、jmp2=1で
   2段ジャンプのフラグを立て、appear(new effect(x,y,f))は自機の下に火花状の
   エフェクトを出す処理になっています。

以上で一通りの処理はできるのですが、このままでは2段ジャンプした後にjmp2が
1のままになってしまうので、自機がブロックに着地したときに、再び2段ジャンプ
できるようにします。プログラムでは次の文でjmp2をゼロに戻しています。

     if (wY>= 1) {vy=0;jmp=0;jmp2=0;y=trunc(y/32)*32+16;}





ゲーム制作ソフト
Tonyu System公式サイト




Tonyuとは
ダウンロード
チュートリアル
プロジェクトボード

BBS



|  トップページ | このサイトについて | 利用規約 | ご意見・お問い合わせ |

TonyuアクションRPG - ゲームプログラミング解説 -