トップページへ
 敵の移動動作
・画面外での処理   | 利用規約 | 使い方 | 操作方法 |
■説明
スクロール画面にしてみました。
各マップにそのまま敵を配置してもいいのですが、
  ・ 画面の外にいる敵が絶えず動いてしまう
  ・ 敵が歩いて画面の外にでていったときにも、画面外で
    ずっと動いている
  ・ スクロール中、自機は動かないのに敵は動いてしまう
ということが起こります。市販のゲームらしく動くよう修正します。

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


■解説
EnemyScroll()を追加して、以下を修正する機能を盛り込んでいます。

1.画面の外にいる敵が絶えず動いてしまう
   敵のいるマップに自機が入ったら移動を開始するようにします。
   mapX , mapYを敵にも設け、スクロール時、自機のmapX , mapYと一致するか
   見ています。

2.敵が歩いて画面の外にでていったときにも、画面外でずっと動いている
   マップから敵が出て行ってしまったときは、敵を一旦画面の外に移動させ、
   スクロールが行われるまで待機状態にします。スクロール処理が行われると、
   再度敵の位置を初期位置(startX , startY)にセットしなおします。



3.スクロール中、自機は動かないのに敵は動いてしまう
   $Mycharのscrollmap()に、オブジェクトの動きを一旦止めるための変数 pauseの
   処理を加えました。
       ・ 動きを止めるときは pause=1
       ・ 動きを止めないときは pause=0
   を代入します。オブジェクトEnemy1で$Mychar.pauseの値を監視し、停止するか
   どうか決めています。

※プログラム実行中は、マップの外にいる敵の状態がわかりません。
  オブジェクトを配置するウインドウから ウインドウ → サテライトを選んでください。
  下のような画面が出てきます。縮尺を調整して、赤丸部分を拡大してください。







トップページへ