トップページへ
 自機の移動
・三角跳び サンプルプログラム 三角跳び  | 利用規約 | 使い方 | 操作方法 |
■説明
自機が空中にいるとき、壁に向かって進行方向のキーを押し、
スペースキーをタイミングよく押すことで、壁をけってジャンプ
(三角跳び)ができます。
■参考
自機の移動 - 慣性をつける
自機の移動 - 2段ジャンプ

サンプルプログラム 三角跳び
■解説
1.自機が空中にいて、壁にくっついており、スペースキーが押されたときに
  反対側へジャンプできる条件を考えます。
  三角跳びは、自機が空中にいる間1回だけできるようにします。

  A. 自機が壁にくっついている : wX!=0
  B. 自機が空中にいる : wY==0 && ld==0
      (下の壁にもハシゴにも接していない)
  C. スペースキーが押された : getkey(32)==1
  D. 三角跳び回数制限 : kabekeri==0
     (三角跳びのフラグ 0:三角跳びする前  1:三角跳びした後)

  A〜Dをすべて満たす条件が、三角跳びできる条件になります。
   
(wX!=0 && wY==0 && ld==0 && getkey(32)==1 && kabekeri==0)

2.具体的なジャンプの処理として、vyのセット、自機の向き変更、
  火花状のエフェクト発生処理などを加えます。
  また、数回にわたって三角跳びできないように、フラグを立てておきます。
  (kabekeri=1にします)

     if (wX!=0 && wY==0 && ld==0 && getkey(32)==1 && kabekeri==0){
        vy=-7;
         f=-f;
        vx+=3*f;
        p=$pat_chara+0;
        
kabekeri=1;
        appear(new effect(x,y,f));
     }

3.着地したら、再び三角跳びができるようにします。
  具体的には、壁やハシゴに着地したら三角跳びのフラグを戻します。
  (kabekeri=0にします)

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


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

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