トップページへ
 敵の移動動作
・トラップ   | 利用規約 | 使い方 | 操作方法 |
■説明
自機が近づくと向かってくるトラップ型の敵です。
XまたはY座標が自機と一致した場合に動き出し、一旦動き出すと
壁に衝突するまで速度を変えずに進みます。
青トラップはX方向、赤トラップはY方向にのみ移動します。


■参考
自機の移動 - ハシゴ動作
敵の移動 - 壁で折り返す

■解説
青トラップを例に説明します。
以下の@〜Cがすべて満たされた場合にのみ動き出すプログラムになっています。

 @自機のY座標と、トラップのY座標の差が15ドット以内 → abs($Mychar.y-y)<15
 A自機がトラップより左にいる → ($Mychar.x-x)>0
 Bトラップが静止している → vx==0
 C自機とトラップの間にブロックがない → Block_exist_x(x,y,$Mychar.x)==0


 (例)自機がトラップの左にいる場合



 「@〜Cの条件を満たした場合にトラップが動き出す」 ということをプログラムで書くと
 以下のようになります。

       if (abs($Mychar.y-y)<15 && ($Mychar.x-x)>0
              && vx==0 && Block_exist_x(x,y,$Mychar.x)==0) vx= 3;

Block_exist_xはある位置からX方向に対し、ブロックが存在するか調べる
ファンクションです。初期のX座標から目的のX座標まで、32ドットおきにブロックが
あるか$map.getAtを使って調べ、ブロックの個数を戻り値として返すようになっています。




トップページへ