敵スプライトから自動で弾を発射してみよう


敵スプライトを自動で上下に動かしてみようで追加しました敵スプライトに自動で弾を発射するようにしてみます。

最初に弾を発射してみますで作成しました弾を発射する関数を参考にして敵の弾の発射関数を作成します。


プレイヤーの弾スプライトと敵の弾スプライトを区別するために、スプライトの新しいタイプを追加します。



スプライトにありますタイプのセレクトボックスが付いたブロックを取り出し、



新しい kind を追加...を選択します。



今回はenemy_projectileというタイプを追加します。

追加したタイプを使って、



敵の弾の発射関数を作成します。

作成しました関数を



敵スプライトの動きを入れたずっとブロック内の一番下に入れてみます。

この状態でコードを実行してみますと、



のように敵スプライトから連続で弾を発射し続けることになります。




続いて、敵スプライトは時々弾を発射するようにしてみます。

乱数(ランダムな数字)を使って、



弾を発射する時はランダムな数字で判定を追加します。

最大の方の数字を大きくするか、< の右側の数字を小さくすることで発射の頻度を減らすことができます。


この状態でコードを実行してみますと、



敵スプライトは時々弾を発射するようになりました。




敵スプライトの方の弾の発射の連射の制限を付けてみます。



先程追加しましたランダムの判定式をもった「もし」ブロックを囲うようにenemy_projectile 配列内の要素数の判定を追加します。


この状態でコードを実行してみますと、



弾の連射を禁止しつつ、発射のタイミングをランダムになりました。

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

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