2.21 GAME - 心を守れ

このプロジェクトでは、反応速度を試すゲームを作成しましょう。

舞台には矩形の箱に守られた心があり、舞台の任意の位置からこの心に向かって矢が飛んできます。矢の色はランダムに黒と白の間で変わり、矢はますます速く飛びます。

矩形の箱の色と矢の色が同じ場合、矢は外部にブロックされ、レベルが1追加されます。両方の色が同じでない場合、矢は心を撃ち抜き、ゲームは終了します。

ここでは、矩形のボックスの色はLine Trackingモジュールによって制御されます。モジュールが黒い表面(反射する表面)に置かれたとき、矩形のボックスの色は黒であり、それ以外の場合は白です。

従って、矢の色に応じて、Line Trackingモジュールを白い表面または黒い表面に置くかどうかを決定する必要があります。

../_images/22_heart.png

必要な部品

このプロジェクトには、以下のコンポーネントが必要です。

キット全体を購入すると確かに便利です。リンクはこちらです:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

SunFounder R3ボード

BUY

ジャンパーワイヤー

BUY

ライン追跡モジュール

BUY

回路の作成

これはデジタルのLine Trackingモジュールであり、黒い線が検出されると1を出力し、白い線が検出されると0の値を出力します。さらに、モジュール上のポテンショメータを通じて感知距離を調整することができます。

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

../_images/linetrack_circuit.png

注釈

プロジェクトを開始する前に、モジュールの感度を調整する必要があります。

上記の図に従って配線し、R3ボードに電源を供給します(USBケーブルを直接挿入するか、9Vの電池ボタンケーブルを使用)。コードをアップロードせずに。

机の上に黒い電気テープを貼り、Line Trackモジュールを机から2cmの高さに置きます。

センサーを下に向け、モジュールの信号LEDが白いテーブルで点灯し、黒いテープで消灯することを確認します。

そうでない場合、モジュール上のポテンショメータを調整して、上記の効果を実現できるようにします。

プログラミング

ここでは、 HeartSquare BoxArrow1 の3つのスプライトを作成する必要があります。

  • Heart:舞台の真ん中で止まっていて、 Arrow1 スプライトに触れるとゲームが終了します。

  • Square Box:コスチュームが2種類あり、黒と白で、Line Trackingモジュールの値に応じてコスチュームを切り替えます。

  • Arrow:任意の位置から舞台の中央に向かって黒/白で飛びます。その色が Square Box スプライトの色と一致する場合、それはブロックされ、ランダムな位置から舞台の中央に再び飛ぶ。その色が Square Box スプライトの色と一致しない場合、 Heart スプライトを通過し、ゲームが終了します。

1. Square Boxスプライトを追加する

Arrow1とSquare Boxスプライトの両方が白いコスチュームを持っているため、それらを舞台に表示するために、今、背景を黒、白、赤を除く任意の色で塗りつぶします。

  • Backdrop1 をクリックして、その Backdrops ページに移動します。

  • 塗りつぶす色を選択します。

  • 描画ボードと同じサイズの矩形を描画するために Rectangle ツールを使用します。

../_images/22_heart0.png

デフォルトのスプライトを削除し、 Choose a Sprite ボタンを使用して Square Box スプライトを追加し、そのxとyを(0, 0)に設定します。

../_images/22_heart1.png

Square Box スプライトの Costumes ページに移動して、黒と白のコスチュームを設定します。

  • 選択ツールをクリックします。

  • キャンバス上の矩形を選択します。

  • 塗りつぶしの色を黒に設定します。

  • そして、コスチュームの名前を Black とします。

../_images/22_heart2.png

2番目のコスチュームを選択し、塗りつぶしの色を白に設定し、その名前をWhiteに設定し、残りのコスチュームを削除します。

../_images/22_heart3.png

2. Heartスプライトの追加

Heart スプライトを追加し、その位置を(0, 0)に設定し、Square Boxの中に位置しているようにサイズを縮小します。

../_images/22_heart5.png

Costumes ページで、紫色のハートのコスチュームを破損しているように調整します。

../_images/22_heart6.png

3. Arrow1スプライトの追加

Arrow1 スプライトを追加します。

../_images/22_heart7.png

Costumes ページで、右向きのコスチュームを保持・複製し、その色を黒と白に設定します。

../_images/22_heart8.png

4. Square Boxスプライトのスクリプト作成

Blocks ページに戻り、 Square Box スプライトのスクリプトを作成します。

  • デジタルピン2(ラインフォローモジュール)の値が1(黒い線が検出された場合)の場合、コスチュームを Black に切り替えます。

  • それ以外の場合は、コスチュームを White に切り替えます。

../_images/22_heart4.png

5. Heartスプライトのスクリプト作成

Heart スプライトは Square Box 内に保護されており、デフォルトでは赤いコスチュームです。Arrow1スプライトが触れた場合、ゲームは終了します。

../_images/22_heart9.png

6. Arrow1スプライトのスクリプト作成

緑のフラグがクリックされたとき、 Arrow1 スプライトを非表示にし、クローンを作成します。

../_images/22_heart10.png

[init] ブロックを作成して、 Arrow1 スプライトの位置、向き、色を初期化します。

ランダムな位置で現れ、それと Heart スプライトとの距離が200未満の場合、距離が200以上になるまで外向きに移動します。

../_images/22_heart11.png

Heart スプライトの方向に向けてその方向を設定します。

../_images/22_heart12.png

色を黒/白の間でランダムに切り替えます。

  • 変数の色が0の場合、コスチュームを White に切り替えます。

  • 変数の色が1の場合、コスチュームを Black に切り替えます。

../_images/22_heart14.png

これで、移動を開始します。変数 level の値が増加すると、移動速度が速くなります。

../_images/22_heart13.png

Square Box スプライトとの衝突効果を設定します。

  • Arrow1 スプライトと Square Box スプライトの色が同じ(Line Trackモジュールの値に応じて変更される)場合、新しいクローンが作成され、ゲームは続行されます。

  • 彼らの色が一致しない場合、 Arrow1 スプライトは移動を続け、 Heart スプライトに当たるとゲームが終了します。

../_images/22_heart15.png

注釈

2つの [touch color()] ブロックは、Square Boxの黒/白のコスチュームをそれぞれ別々に取得する必要があります。

../_images/22_heart16.png