EnemyScroll()を追加して、以下を修正する機能を盛り込んでいます。
1.画面の外にいる敵が絶えず動いてしまう
敵のいるマップに自機が入ったら移動を開始するようにします。
mapX , mapYを敵にも設け、スクロール時、自機のmapX , mapYと一致するか
見ています。
2.敵が歩いて画面の外にでていったときにも、画面外でずっと動いている
マップから敵が出て行ってしまったときは、敵を一旦画面の外に移動させ、
スクロールが行われるまで待機状態にします。スクロール処理が行われると、
再度敵の位置を初期位置(startX , startY)にセットしなおします。

3.スクロール中、自機は動かないのに敵は動いてしまう
$Mycharのscrollmap()に、オブジェクトの動きを一旦止めるための変数 pauseの
処理を加えました。
・ 動きを止めるときは pause=1
・ 動きを止めないときは pause=0
を代入します。オブジェクトEnemy1で$Mychar.pauseの値を監視し、停止するか
どうか決めています。
※プログラム実行中は、マップの外にいる敵の状態がわかりません。
オブジェクトを配置するウインドウから ウインドウ → サテライトを選んでください。
下のような画面が出てきます。縮尺を調整して、赤丸部分を拡大してください。

|
|
|
|