ヘビキングを撃てを作ろう(完)

 

前回の ヘビキングを撃てを作ろう のつづきです。

これで完結です。
がんばりましょう。

ところで、初めてプログラミングに挑戦していますか?
他の言語も学習していますか?
「混乱するから1つの言語にしぼって学習する」という考え方もありますが、 私は複数の言語を並行して学習するのも「あり」だと思っています。
同じ言語の、他の学習サイトを並行して行うのもありです。
メリットはプログラミング脳の育成が早くなります。複数の角度からアプローチすることで、より深く理解することができます。
「あぁ、これってこういうことか」って思うシーンが多くなりますよ。

 

弾を発射しよう

プレイヤーから弾を撃てるようにします。
コントローラーA ボタンが押した時 をドラッグします。

Aボタンが押したときにを使う

 

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

発射体ブロックを使う

 

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

弾の絵を選ぶ

 

 

弾の表示優先を変えよう

弾の発射テストをしてください。

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

弾の絵がプレイヤーの上から発生している

 

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

プレイヤーの表示優先を高くします。
スプライト から mySpriteのXを0にする をドラッグします。

mySpriteのXを0にするを使う

 

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

z(深さ)を選択する

 

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

zを10に変更する

 

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

表示優先を設定するベストな場所

 

 

ヘビキングと弾の当たり判定を入れよう

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

当たり判定を用意する

 

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

弾のスプライトを破壊する

 

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

エフェクト用のブロックを用意する

 

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

エフェクトの種類を指定する

 

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

当たったとき画面を揺らす

 

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

画面を揺らす時間を指定

テストしてください。
ヘビキングに弾が当たったとき、うっすらと演出が入ります。
画面の揺れは、背景の絵は揺れずスプライトのみ揺れます。少し残念な仕様ですね。

 

小ヘビと弾の当たり判定を入れよう

小ヘビとの当たり判定を入れます。
当たり判定はタイプで判断するので、小ヘビが複数いても1つの当たり判定で処理できます。

ヘビキングで作った当たり判定をコピーしましょう。

当たり判定をコピーする

 

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

spriteのタイプをEnemyにする

テストしましょう。
小ヘビに当たったとき弾が消滅すればOKです。

 

スコアとカウントダウン

スコアを入れます。
ヘビキングと弾との当たり判定にスコアを入れます。ここでは 5 点追加にします。

ヘビキングと弾の当たりは5点追加

 

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

弾を発射するときスコア-1

 

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

カウントダウンを最初だけに入れる

 

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

得点とカウントダウンの確認をする

 

開始前メッセージを表示しよう

カウントダウンのあるゲームは、いきなり始まると大変ですよね。
自分の好きなタイミングで開始できる仕様にするべきです。

ゲーム から タイトル を表示する をドラッグします。

タイトルを表示するを使う

 

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

タイトル表示を最初だけに入れる

 

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

Aボタンを押すとゲーム開始

 

完成

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

ヘビキングに当たらないとマイナス

 

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

ハイスコアを目指そう

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

 

 

MakeCode Arcade

  1. MakeCodeはいかが
  2. りんご狩りゲーム
  3. りんご狩りゲーム(完)
  4. ピザを避けてゲーム
  5. ピザを避けて 2
  6. ピザを避けて(完)
  7. アカウント登録
  8. ケーキ早食いゲーム
  9. ケーキ早食い 2
  10. ケーキ早食い(完)
  11. 危険ドライブ
  12. 危険ドライブ 2
  13. 危険ドライブ(完)
  14. 15秒シューティング
  15. 15秒Shooting 2
  16. 15秒Shooting(完)
  17. ブロック崩し
  18. ブロック崩し 2
  19. ブロック崩し(完)
  20. ヘビキングを撃て
  21. ヘビキング(完)
  22. ちょびっと迷路
  23. ちょびっと迷路 2
  24. ちょびっと迷路(完)
  25. でんでんジャンプ
  26. でんでんJump 2
  27. でんでんJump(完)
  28. ミニダンジョン
  29. ミニダンジョン 2
  30. ミニダンジョン 3
  31. ミニダンジョン 4
  32. ミニダンジョン(完)