.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _sh_shooting: 2.13 ゲーム - シューティング ==================================== テレビでシューティングゲームを見たことはありますか?ターゲットの中心に近づくほど、得点が高くなります。 今日もScratchでシューティングゲームを作ります。このゲームでは、クロスヘアでできるだけ中心に近づけてシュートして、高得点を狙います。 緑のフラグをクリックして開始します。障害物回避モジュールを使用して弾を発射します。 .. image:: img/14_shooting.png 学べること --------------------- - 障害物回避モジュールの仕組みと角度の範囲 - 様々なスプライトの描画 - タッチカラー 必要な部品 --------------------- このプロジェクトには以下のコンポーネントが必要です。 一式を購入するのが便利です、リンクはこちら: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットのアイテム - リンク * - 3 in 1 Starter Kit - 380+ - |link_3IN1_kit| 以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 30 20 :header-rows: 1 * - コンポーネントの紹介 - 購入リンク * - :ref:`cpn_uno` - |link_Uno_R3_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_avoid` - |link_obstacle_avoidance_buy| 回路の作成 ----------------------- 障害物回避モジュールは、距離が調整可能な赤外線近接センサーで、通常はハイ出力で、障害物が検出されるとローになります。 下の図に従って回路を組み立ててください。 .. image:: img/circuit/avoid_circuit.png プログラミング ------------------ **1. クロスヘアスプライトの描画** デフォルトのスプライトを削除し、 **Sprite** ボタンを選択し、 **Paint** をクリックすると、空白のスプライト **Sprite1** が現れますので、名前を **Crosshair** とします。 .. image:: img/14_shooting0.png **Crosshair** スプライトの **Costumes** ページに移動します。 **Circle** ツールをクリックし、塗りつぶし色を削除し、アウトラインの色と幅を設定します。 .. image:: img/14_shooting02.png **Circle** ツールで円を描きます。描画が終わったら、 **Select** ツールをクリックして、原点がキャンバスの中心に合わせるように円を移動します。 .. image:: img/14_shooting03.png **Line** ツールを使用して、円の中に十字を描きます。 .. image:: img/14_shooting033.png **ターゲットスプライトの描画** 新しいスプライトとして **Target** スプライトを作成します。 .. image:: img/14_shooting01.png **Target** スプライトのコスチュームページに移動し、 **Circle** ツールをクリックして、塗りつぶし色を選択し、アウトラインを削除して大きな円を描画します。 .. image:: img/14_shooting05.png 同じ方法で、異なる色の円を追加で描画します。 **Forward** や **Backbard** ツールを使用して、重なる円の位置を変更できます。すべての円の原点とキャンバスの中心が合うように、ツールで円を移動することも忘れないでください。 .. image:: img/14_shooting04.png **3. 背景の追加** 色が多すぎず、 **Target** スプライトの色と一致しない背景を追加します。ここでは **Wall1** の背景を選択しました。 .. image:: img/14_shooting06.png **4. クロスヘアスプライトのスクリプト** **Crosshair** スプライトの位置とサイズをランダムに設定し、ランダムに動かします。 .. image:: img/14_shooting4.png 障害物回避モジュールの前に手を置くと、低レベルを送信信号として出力します。 .. image:: img/14_shooting5.png **shooting** メッセージを受け取ると、スプライトは動きを停止し、ゆっくりと縮小します。これは、弾が発射される効果をシミュレートしています。 .. image:: img/14_shooting6.png [Touch color ()] ブロックを使用して、ショットの位置を判断します。 .. image:: img/14_shooting7.png ショットが黄色い円の中にある場合、10が報告されます。 .. image:: img/14_shooting8.png 同じ方法を使用して、弾のショット位置を判断します。それが **Target** スプライトに設定されていない場合、円の外にあることを意味します。 .. image:: img/14_shooting9.png