2.16 ゲーム - りんごを食べる

このプロジェクトでは、ボタンを使用してビートルを操作し、りんごを食べるゲームを楽しみます。

緑のフラグをクリックした後、ボタンを押すとビートルは回転します。ボタンを再度押すとビートルはその角度で直進します。マップ上の黒い線に触れずに、適切な角度でビートルを操作し、りんごを食べるまで進めてください。もし黒い線に触れてしまったら、ゲームオーバーとなります。

../_images/14_apple.png

必要な部品

このプロジェクトで必要な部品は以下の通りです。

全ての部品が含まれたキットを購入するのは非常に便利です。リンクはこちら:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

以下のリンクから、部品を個別に購入することも可能です。

コンポーネントの紹介

購入リンク

SunFounder R3ボード

BUY

ブレッドボード

BUY

ジャンパーワイヤー

BUY

抵抗器

BUY

コンデンサ

BUY

ボタン

BUY

回路の作成

ボタンは4ピンのデバイスです。ピン1はピン2に、ピン3はピン4に接続されています。ボタンが押されると、4つのピンが接続され、回路が完成します。

../_images/5_buttonc.png

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

  • ボタンの左側のピンの1つを、プルダウン抵抗と0.1uF (104) のキャパシターに接続されているピン12に接続します(ボタン動作時のジッタを除去し、安定した出力を得るため)。

  • 抵抗とキャパシタのもう一方の端子をGNDに接続し、ボタンの右側のピンの1つを5Vに接続します。

../_images/button_circuit.png

プログラミング

私たちが達成したい効果は、ボタンを使って Beetle スプライトの方向を制御し、 Maze バックドロップ上の黒い線に触れずに前進してりんごを食べ、食べるとバックドロップが切り替わることです。

まず関連するバックドロップとスプライトを追加します。

1. バックドロップとスプライトの追加

Choose a backdrop ボタンを使って Maze バックドロップを追加します。

../_images/14_backdrop.png

デフォルトのスプライトを削除し、 Beetle スプライトを選択します。

../_images/14_sprite.png

Beetle スプライトを Maze バックドロップの入口に配置し、この時点でのx,y座標の値を覚えておき、スプライトのサイズを40%に調整します。

../_images/14_sprite1.png

2. バックドロップの描画

次に、WIN!キャラクターが表示されるバックドロップを簡単に描画します。

まずバックドロップのサムネイルをクリックして Backdrops ページに移動し、blank backdrop1をクリックします。

../_images/14_paint_back.png

描画を開始します。下の画像を参考に描くことができますし、勝利の表情として独自のバックドロップを描くこともできます。

  • Circle ツールを使用して、色を赤に設定し、アウトラインを持たない楕円を描きます。

  • 次に Text ツールを使って、"WIN!"という文字を書き、文字の色を黒に設定し、文字のサイズと位置を調整します。

  • バックドロップの名前を Win にします。

../_images/14_win.png

3. バックドロップのスクリプト作成

ゲームが開始するたびに、バックドロップを Maze に切り替える必要があります。

../_images/14_switchback.png

4. Beetleスプライトのスクリプトの記述

ボタンの制御の下で前進と方向転換ができるように、スプライト Beetle のスクリプトを書きます。ワークフローは以下の通りです。

  • 緑のフラグがクリックされたとき、 Beetle の角度を90に設定し、位置を(-134, -134)に設定します。また、自分で配置した位置の座標値に置き換えることもできます。変数 flag を作成し、初期値を-1に設定します。

../_images/14_bee1.png

次に、[forever]ブロック内で、4つの[if]ブロックを使用して様々な可能性のあるシナリオを判断します。

  • キーが1(pressed)の場合、[mod]ブロックを使用して変数 flag の値を0と1の間で切り替えます(このプレスのための0、次のプレスのための1を交互にする)。

../_images/14_bee2.png
  • flag=0(このキーの押下)の場合、 Beetle スプライトは時計回りに回転します。次にflagが1(再びキーが押された)と等しいかどうかを判断し、 Beetle スプライトが前進するか、時計回りに回り続けるかを決定します。

../_images/14_bee3.png
  • Beetleスプライトが黒( Maze バックドロップ上の黒い線)に触れると、ゲームは終了し、スクリプトは実行を停止します。

注釈

[Touch color]ブロック内の色領域をクリックし、アイドロッパーツールを選択してステージ上の黒い線の色を取得する必要があります。任意で黒を選択すると、この[Touch color]ブロックは動作しません。

../_images/14_bee5.png
  • Beetleが赤に触れると(アップルの赤い色を取得するためにストロツールも使用します)、バックドロップは Win に切り替わり、ゲームは成功し、スクリプトの実行が停止します。

../_images/14_bee4.png