[[Tonyu基礎練習]] - ''練習:getkey文の応用'' 練習:getkey文の応用getkeyを応用することによって、ゲームの幅が広がります。 1.連射 シューティングゲームを作成された方であれば、 弾を発射する度に、スペースキーを連打したのでは壊れても文句は言えません。 Jiki.tonyu extends SpriteChar; while(1){ i++; if ( getkey(39)>0 && x<$screenWidth) x=x+3; if ( getkey(37)>0 && x>0) x=x-3; if ( getkey(32)>0 && i>20) { appear(new Tama x,y,$pat_Tama+1)); i=0; } update(); } このように、変数iのようなフレームカウントを記録する変数を用意してあげることで簡単に連射させることができます。 2.弾数制限しかし、上の例では すこし改造してみましょう。 Jiki.tonyu extends SpriteChar; while(1){ i++; j++; if (getkey(39)>0 && x<$screenWidth) x=x+3; if (getkey(37)>0 && x>0) x=x-3; if (getkey(32)>0) { if(i>=10 && j=<50){ appear(new Tama x,y,$pat_Tama+1)); i=0; } if(j>70) j=0; } else { i=0; j=0; } update(); } このようにすると、シューティングゲームのような感じがします。for~in文でTamaを調べることなく画面上の弾をある程度まで制限させることは可能です。 3.気合弾気合弾とは、スペースキーを押しっぱなしにした後に大きな打撃を与える弾を撃つ攻撃方法のことです。「溜め打ち」とも言います。 押しっぱなしにされている状態を上手に表現できれば問題は解決されそうです。 Jiki.tonyu while(1) { if (($Joystick.right()>0 || getkey(39)>0) && x<$screenWidth) x=x+3; if (($Joystick.left()>0 || getkey(37)>0) && x>0) x=x-3; if (($Joystick.button(0)>50) || getkey(32)==1) appear(new Tama(x,y,$pat_Tama+1)); if ($Joystick.button(0)>50 || getkey(32)>50) kiai=1; if (kiai==1 && ($Joystick.button(0)==0 && getkey(32)==0)) { appear(new Kiai(x,y,$pat_Tama+2)); kiai=0; } update(); } 上のコードではジョイスティックにも対応してあります。 |