2020年1月20日
スペースインベーダー風ゲーム-バグを取り除こう!

作成:旭川児童パソコン教室“ぱそんこ”
スペースインベーダー風ゲームを作ってみよう!③で発生したバグを取り除いてみましょう。
反転処理のバグを取ろう
敵が端まで来ないで反転するバグがあります。
どうして途中で反転してしまうのでしょうか?
実は、ちゃんと右端まで来ています。
隠しているオリジナルの【Lady bug2】を見えるようにします。

実行してみると、オリジナルの【Lady bug2】が右端に来たとき反転していました。

このバグは反転処理で、オリジナルとクローンを区別せずに実行していたため発生していました。
隠していた【Lady bug2】も反転処理していたことが原因です。
バグを直すために、隠す敵と表示している敵を区別します。
まずは敵の表示という変数を作ります。
作業は必ず【Lady bug2】を選択した状態で作ります。
このときこのスプライトのみを選択しましょう。

表示していても邪魔なので、敵の表示のチェックを外します。
他の変数も必要なければ外し、見たいときにチェックを入れましょう。

作業の前に、追加した表示するを取り除いてください。
それでは表示中の敵と隠している敵の処理を分けます。
変更点は3つあります。

変更内容を見てみましょう。
まず、初期化処理です。
50回繰り返すの前に敵の表示を0にするを追加します。
次に表示するものを指定します。
クローンされたときの表示するの後に敵の表示を1にするを追加します。
隠すものの場合、移動処理を止めます。
移動指示を受け取ったときにもし敵の表示が0ならこのスクリプトを止めるを追加します。
正常に動くか実行してみましょう。
ステージの端から端まで敵が移動するようになったら成功です。