今日の午前中は、キッズプログラミングの日。
これまでに、ゲーム作りに必要な、スプライト(キャラクター)の移動方法やスプライトの消し方、スプライトのコスチュームの変化を利用した、アニメ表現、お互いのスクリプトをつなぐメッセージ機能などを学んだので、今日は、それらを活かして、シューティングを作ってもらいました。
せっかくなので、久々に自分もプログラミングに挑戦。
敵機が、自機の位置に向かって移動するようにプログラミングしてありますので、敵が1機しか出てこなくても、なかなか手ごわいゲームにできたかなと、自画自賛しています(笑)
こういったシューティングのような動きが早いものをScratchでプログラミングすると、ビームと相手、ビームと自機の当たり判定が上手く行かないことが多々あります。
当たり判定の中で、爆発のエフェクトやら表示位置のリセットなどを色々行うと、マルチスレッド処理されるScratchでは上手く同期されて動かないので、シンプルに、判定の中では当たった!ってメッセージを作り、それをキッカケにいろんな処理を走らせたほうが、上手くいきますね。
Scratchでのゲームプログラミングのコツは、メッセージ機能をうまく使いこなせるかって感じかな。
普段は、生徒たちのQ&A 対応で自分が作ることができなかったのですが、今日は、生徒も、黙々と作業に没頭していたので、自分もプログラミングを楽しめました。
理屈ではわかっているけど、いざ動かしてみると、上手く動かない・・・
プログラミングではよくあることです。
プログラミングの感が鈍らないよう、このシューティングゲームを最後まで完成させよっと。