敵スプライトを設置して、弾が当たったら消えるようにしよう


敵スプライトを用意して、弾を発射してみますで作成しました弾の発射の仕組みを組み合わせて弾スプライトが敵スプライトに当たったら敵スプライトが消えるコードを書いてみます。


始めに連射禁止のコードを作成します。






敵スプライトを設置してみます。



最初だけブロック内でEnemy(敵)タイプのスプライトの作成のブロックを挿入して、そのブロックの下に位置を設定するブロックを挿入します。

続いて、



「Projectileタイプの弾スプライトとEnemyタイプの敵スプライトが重なった時」ブロックを追加し、そのブロック内で「弾を破棄する」ブロックと、「敵を破棄する」ブロックを挿入します。


敵を破棄するブロックの方のみエフェクトを追加します。

この状態でコードを実行して、Aボタンを押してみると、



プレイヤーから発射された弾スプライトが敵スプライトに当たった時に、燃えるように敵スプライトが消えるようになりました。




今回追加したコードを何度も試せるように



敵を破棄するの後に、最初だけブロックに挿入しました敵スプライトの出現のコードを複製して挿入します。

ただこのコードでは同じコードが二個所にありますので、



このように関数化して、



最初だけブロック内の敵の出現に関する個所を「呼び出し 敵の出現」に変更し、



「Projectileタイプの弾スプライトとEnemyタイプの敵スプライトが重なった時」ブロックの方も「呼び出し 敵の出現」に変更します。


このコードを実行してみると、



敵スプライトが弾スプライトに当たって破棄された後に、敵スプライトが再度出現するようになりました。

京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。