前回の ヘビキングを撃てを作ろう のつづきです。
これで完結です。
がんばりましょう。
ところで、初めてプログラミングに挑戦していますか?
他の言語も学習していますか?
「混乱するから1つの言語にしぼって学習する」という考え方もありますが、
私は複数の言語を並行して学習するのも「あり」だと思っています。
同じ言語の、他の学習サイトを並行して行うのもありです。
メリットはプログラミング脳の育成が早くなります。複数の角度からアプローチすることで、より深く理解することができます。
「あぁ、これってこういうことか」って思うシーンが多くなりますよ。
弾を発射しよう
プレイヤーから弾を撃てるようにします。
コントローラー の A ボタンが押した時 をドラッグします。

スプライト から発射体のブロックを持ってきます。
プレイヤーから発射するので mySpriteから のブロックを使います。
A ボタンが押した時 に入れたら速度 vx 0 vy -85 に変更します。

絵は次のものを選びました。

弾の表示優先を変えよう
弾の発射テストをしてください。
よく見るとプレイヤーの上から弾の絵が発生しています。
ゲーム制作では基本的にプレイヤーの表示を優先させる必要があります。
何か目的があって意図的に他の絵を上にのせることは構いません。

スプライトの表示優先は何も指定しないと、後から発生したものが上になります。そのためプレイヤーより弾の優先が高くなります。
プレイヤーの表示優先を高くします。
スプライト から mySpriteのXを0にする をドラッグします。

A ボタンが押した時 の中に入れたら z(深さ)を選択します。

z を 10 に変更します。
(例えば -10 にすると他のスプライトより優先が一番低くなります)
これで弾よりもプレイヤーの優先が高くなりました。実行テストしてプレイヤーの下から弾が発射されることを確認してください。

ごめんなさい。ここで間違いをしました。
プログラミング的にバグではないのですが「好ましくない」方法を行いました。
プレイヤー(スプライト)の表示優先は一度設定すればいいので 最初だけ に入れるべきでした。(下図の位置がベスト)
「好ましくない」理由は、弾を発射するたびにプレイヤーの表示優先を設定することになります。動作的には問題なくても、余計な処理をしていることになります。
今回はたった1ブロックですが、もっと重い処理なら致命的です。「どこで何の処理をすべきか」を意識することは初心者のときから行うべきです。
すみませんが、画像の撮り直しが面倒なので修正せずこのまま説明を続けます。

ヘビキングと弾の当たり判定を入れよう
当たり判定を作ります。下図のブロックを用意します。
sprite を Food タイプ、otherSprite を Projectile タイプにします。
Food がヘビキングで、Projectile が弾です。

ヘビキングに当たった弾を破壊します。
を破壊する が見つからないときは destroy を使いましょう。

弾が当たったとき、ヘビキングに演出をのせたいと思います。
エフェクト用のブロックを用意します。

対象を sprite、エフェクトをスマイル、 時間を 100 に変更します。

当たったとき画面を揺らします。

揺らす時間は 200 ミリ秒にします。

テストしてください。
ヘビキングに弾が当たったとき、うっすらと演出が入ります。
画面の揺れは、背景の絵は揺れずスプライトのみ揺れます。少し残念な仕様ですね。
小ヘビと弾の当たり判定を入れよう
小ヘビとの当たり判定を入れます。
当たり判定はタイプで判断するので、小ヘビが複数いても1つの当たり判定で処理できます。
ヘビキングで作った当たり判定をコピーしましょう。

sprite のタイプを Enemy に変更します。
エフェクトと揺らすブロックは削除します。

テストしましょう。
小ヘビに当たったとき弾が消滅すればOKです。
スコアとカウントダウン
スコアを入れます。
ヘビキングと弾との当たり判定にスコアを入れます。ここでは 5 点追加にします。

弾を発射するときスコアを -1 します。
ヘビキングに当たらなければ、スコアがどんどん減ることになります。

最初だけ にカウントダウンを入れましょう。
時間は 15 秒にします。

テストしましょう。
スコアが 10 点を超えるように頑張ってみてください。かなり難しいですよね。

開始前メッセージを表示しよう
カウントダウンのあるゲームは、いきなり始まると大変ですよね。
自分の好きなタイミングで開始できる仕様にするべきです。
ゲーム から タイトル を表示する をドラッグします。

最初だけ に入れ「Are You Ready?」に変更しましょう。

Aボタンを押すとゲーム開始になります。
ちょっとしたことですが、プレイヤーに有利な仕組みと言えます。

完成
完成です。お疲れさまでした。
遊んでみてください。ヘビキングに当たらない限り、スコアはどんどんマイナスになります。

小ヘビの移動速度がこのゲームの難易度になります。
誰かにプレイしてもらった時、難しそうなら速度を少し遅くするのもいいでしょう。
ところで、ハイスコアは何点でしたか?
私は 19 点でした。

なお、ハイスコアを表示したいときは カウントダウンが終了した時 のブロックを使って game over 勝ち の処理を行います。