トップページへ
 攻撃パターン
・魔法(拡散弾)   | 利用規約 | 使い方 | 操作方法 |
■説明
弾を広範囲に打ちます。Xキーを押しっぱなしにすることで連続して攻撃することができるようになっています。
■参考
攻撃とダメージ処理 - 自機の攻撃動作
攻撃パターン - 弓矢
攻撃パターン - 魔法(5連弾)
■解説
攻撃パターン - 魔法(5連弾)の応用になります。
発射された弾に角度をつけること、攻撃しやすいようにキーを押しつづけることで攻撃するように変更すること、以上2点が異なります。$Effectクラスだけの修正で対応できます。

  $Effectクラス(一部)
if (p=="Magic"){
  p=-1;
  zOrder=-7;
  anim=newAnimation();
  anim.swing($pat_weapon+2,$pat_weapon+2,3);
  $Mychar.p=$pat_chara+2;
  i=0;
  while(1){
    x=$Mychar.x+$Mychar.f*15;
    y=$Mychar.y+3;
    drawSprite($Mychar.x+$Mychar.f*9,$Mychar.y+3,$pat_arm+0,
                                   $Mychar.f, 1);
    if (i==30) appear(new Effect(x,y,"Fire-Kakusan"));
    if (!getkey(90)>=1) break;
    i++;
    update();
  }
  $Mychar.onAttack=0;
}

if (p=="Fire-Kakusan"){
  p=-1;
  while(getkey(90)>=1){
    appear(new Weapon_My(x,y,"fire",90+rnd(60)-30));
    wait(5);
  }
}

if (p=="Magic")・・・のループをWhile文にして、そのなかでキー入力の判定を行っています。Xキーが押しっぱなしになっていればWhileの中の処理が実行されますが、押しっぱなしでない場合は処理を行いません。Xキーが押しっぱなしの場合、魔法を打つ前のタメの処理を行った後、引数を"Fire-Kakusan"とした上で再度$Effectクラスを呼びます。
"Fire-Kakusan"のルーチンでは角度に乱数を加えることで弾を拡散させます。
90+rnd(60)-30という値が実際の角度になり、この場合、水平方向から±30度のバラツキをもたせて弾を発射することになります。wait(5)が次の弾が打たれるまでのウェイトです。角度やウェイトを変更してみると攻撃がハデになって結構面白いです。この辺りがゲームバランス調整にきいてきます。




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

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