|
シューティングゲームのようなものを作ろうとしているのだと思います。
大体の感じですが、以下のようにすればいいと思います。
Do
'キーボードの入力状況に応じて自機の座標(i, j)を変更
'敵機の座標(I, J)を変更
'すべてのセルの背景色をクリア
'自機、敵機の座標のセルの背景色を設定
Loop
すべてのセルはCellsで取得できます。
ループのたびにセルの背景色をクリア・設定しているのは、自機・敵機が動いたかどうかでセルの背景色を変更するかどうかを判定していると、処理が煩雑になるためです。
ですので、ここでは自機・敵機の座標が変わったかどうかに関係なく、ループのたびに背景色を設定し直すという方法をとっています。
自機と敵機の処理を別のプロシージャにしたいなら、それぞれのプロシージャではキーボードの入力状況や乱数による座標の変更だけの処理にして、ループや背景色の設定に関しては呼び出し元で処理するようにすればいいでしょう。
なお、質問の部分ではありませんが、敵機の移動部分でRndを使う際、この関数は呼び出すたびに違う値を返すので、If x < Rnd で呼ばれるたびに違う値が使われ、思った挙動にならない可能性がありますよ。
そうしたくないなら、Rndを呼び出すのはループの中で1回だけにして、取得した値を変数にセットし、その変数を用いて条件判定すればいいと思います。
|
|