2.12 光感知ボール¶
このプロジェクトでは、フォトレジスタを使用して、ステージ上のボールを上方に飛ばします。フォトレジスタの上に手を置いて、受け取る光の強度をコントロールします。手をフォトレジスタに近づけるほど、その値は小さくなり、ステージ上のボールはより高く飛びます。そうでなければ、ボールは落ちます。ボールが糸に触れると、きれいな音ときらきらとした星の光が放たれます。
学べること¶
スプライトを色で塗りつぶす
スプライト間の接触
必要な部品¶
このプロジェクトで必要な部品は以下の通りです。
キット全体を購入すると、確かに便利です。リンクはこちら:
名前 |
このキットのアイテム |
リンク |
---|---|---|
3 in 1 Starter Kit |
380+ |
以下のリンクから個別に購入することもできます。
コンポーネントの紹介 |
購入リンク |
---|---|
回路の作成¶
フォトレジスタまたはフォトセルは、光に制御される可変抵抗器です。フォトレジスタの抵抗は、入射光の強度が増えると減少します。
以下の図に従って回路を組み立てます。
フォトレジスタの一方の端子を5Vに、他方の端子をA0に接続し、この端子で10Kの抵抗をGNDと直列に接続します。
したがって、光の強度が増えると、フォトレジスタの抵抗が減少し、10K抵抗の電圧分割が増加し、A0で取得される値が大きくなります。
プログラミング¶
目指す効果は、手をフォトレジスタに近づけるほど、ステージ上のボールのスプライトが上に上がり続け、そうでなければボウルのスプライト上に落ちることです。上を歩くか、下に落ちる際に、ラインのスプライトに触れると、楽音を発し、全方向に星のスプライトを放出します。
1. スプライトと背景の選択
デフォルトのスプライトを削除し、 Ball 、 Bowl 、および Star スプライトを選択します。
Bowl スプライトをステージの下中央に移動し、そのサイズを拡大します。
上に移動する必要があるので、 Ball スプライトの方向を0に設定します。
Star スプライトのサイズと方向を180に設定します。これにより、下に落ちるようになりますが、別の角度に変更することもできます。
Stars の背景を追加します。
2. Lineスプライトの描画
Lineスプライトを追加します。
Line スプライトの Costumes ページに移動し、キャンバス上の赤いラインの幅を若干狭め、それを5回コピーしてラインを整列させます。
ラインに異なる色を塗りつぶします。好きな色を選択し、 Fill ツールをクリックして、ラインの上でマウスを動かして色を塗りつぶします。
同じ方法で、他のラインの色を変更します。
3. Ballスプライトのスクリプト
Ball スプライトの初期位置を設定し、光の値が800未満の場合(現在の環境に応じて別の値にすることができます)、Ballを上に動かします。
light_valueの変数をステージ上で表示させて、光の強度の変化を随時観察することができます。
そうでなければ、 Ball スプライトは落ち、そのY座標を-100の最小値に制限します。これを修正して、 Bowl スプライト上に落ちているように見せることができます。
Line スプライトが当たったとき、現在のY座標を ball_coor 変数に保存し、 Bling メッセージがブロードキャストされます。
4. Starスプライトのスクリプト
スクリプトが開始されたとき、まず Star スプライトを隠します。 Bling メッセージを受信すると、 Star スプライトをクローンします。
Star スプライトがクローンとして表示されると、音声効果を再生し、その座標を Ball スプライトと同期させます。
Star スプライトの表示効果を作成し、必要に応じて調整します。