2.11 ゲーム - 射撃

テレビで見る射撃ゲームはご存知ですか?競技者がターゲットの真ん中に近いところに弾丸を撃つほど、高得点を得られます。

今日はScratchで射撃ゲームを行います。ゲームでは、十字線をできるだけ中心に近づけて、より高い得点を獲得しましょう。

緑の旗をクリックしてスタートします。障害物回避モジュールを使って弾丸を撃ちます。

../_images/14_shooting.png

必要な部品

このプロジェクトには以下の部品が必要です。

全てのキットを購入するのが便利ですが、以下のリンクからも個別に購入できます。

名前

このキットのアイテム

リンク

ESP32 Starter Kit

320+

ESP32 Starter Kit

コンポーネントの紹介

購入リンク

ESP32 WROOM 32E

BUY

ESP32カメラ拡張ボード

-

ジャンパーワイヤ

BUY

障害物回避モジュール

BUY

学べること

  • 障害物回避モジュールの仕組みと角度範囲

  • 異なるスプライトのペイント

  • 色のタッチ

回路の構築

障害物回避モジュールは距離調整可能な赤外線近接センサーで、通常は高出力で障害物を検知すると低出力になります。

以下の図に従って回路を組み立ててください。

../_images/12_shooting_bb.png

プログラミング

1. 照準のスプライトを描く

デフォルトのスプライトを削除し、 Sprite ボタンを選択して Paint をクリックすると、空白のスプライト Sprite1 が現れるので、 Crosshair と名付けます。

../_images/14_shooting0.png

Crosshair スプライトの Costumes ページに移動します。 Circle ツールをクリックし、塗りつぶし色をなくして、アウトラインの色と幅を設定します。

../_images/14_shooting02.png

Circle ツールで円を描きます。描いた後、 Select ツールをクリックして円を移動し、原点がキャンバスの中心に合うようにします。

../_images/14_shooting03.png

Line ツールを使って、円の内側に十字を描きます。

../_images/14_shooting033.png

ターゲットのスプライトを描く

Target という新しいスプライトを作成します。

../_images/14_shooting01.png

Target スプライトのコスチュームページに移動し、 Circle ツールをクリックして、塗りつぶし色を選んでアウトラインをなくし、大きな円を描きます。

../_images/14_shooting05.png

同じ方法でさらに円を描き、それぞれに異なる色を使用します。 ForwardBackbard ツールを使って、重なっている円の位置を変更することができます。また、ツールを選択して円を移動し、すべての円の原点がキャンバスの中心に合うようにする必要があります。

../_images/14_shooting04.png

3. 背景を追加

できれば色が多すぎず、 Target スプライトの色と一致しない、適切な背景を追加します。 ここでは Wall1 背景を選択しました。

../_images/14_shooting06.png

4. 照準スプライトのスクリプト

Crosshair スプライトのランダムな位置とサイズを設定し、ランダムに動かします。

../_images/14_shooting4.png

障害物回避モジュールの前に手を置くと、送信信号としてローレベルを出力します。

../_images/14_shooting5.png

shooting メッセージを受け取ると、スプライトは動きを止めてゆっくり縮小し、弾丸が撃たれた効果をシミュレートします。

../_images/14_shooting6.png

[Touch color ()]ブロックを使って、ショットの位置を判断します。

../_images/14_shooting7.png

ショットが黄色の円の内側にある場合、10ポイントを報告します。

../_images/14_shooting8.png

同じ方法で弾丸の撃たれた位置を判断しますが、 Target スプライトに設定されていない場合は円の外ということになります。

../_images/14_shooting9.png