基本的なブロックの役割
動かしたいスプライトがオリジナル(クローンの対比となる原本の意味)なのかクローンなのか?
そのスプライトを動かすために、新しいブロックをどこに置いたら良いのか?
なんとなく解っているつもり、でも、実はどうなんだろう?
そんなブロックの特性についてご説明します。
オリジナルのスプライトのスクリプト
スクラッチで物語やゲームを作る時に、そのメインキャラクターがひとりで活躍する場合など、
”旗が押されたとき”のブロックの下にオリジナルスプライトの動きのためのスクリプトを作る事になります。
プログラムをスタートさせるのに必ず必要
ゲームスタート時にリストや変数などをリセットする時に使う
オリジナルのスプライトだけに命令をするスクリプトを作る場所となる
メインキャラクターのスプライトが自分のクローンを作らずにオリジナルだけを使う場合は、
いろんなブロックを自由に使ってスクリプトを作成しても何の問題もありません。
しかし、もしメインキャラのクローンをオリジナルと一緒に使うプログラム(例えば分身の術など)の場合は注意が必要です。
どのような注意が必要かは、もう少し下の方で説明をしているので、そこを読んでくださね。
そして、もう一つ理解をしておいて欲しいポイントがあります。
それは、スプライトは”隠す”のブロックで見えていなくてもスクリプト通りに動いているということです。
これはクローンのスプライトも同じですが、画面上に見えていなくても命令した場所に存在していて、
”表示する”と命令をすればすぐに姿を現しますし、隠れたままでも弾を発射する命令をすれば敵を攻撃します。
クローンのスプライトのスクリプト
クローンのスプライトは、オリジナルのスプライトと全く同じ状態で複製され、
そして、”クローンされたとき”のブロックの下のスクリプトのとおりに動きます。
オリジナルのネコ(オリジナルは緑色)から6体のクローンを作るスクリプトと、クローンを作る時の画像です。
オリジナルのスクリプトは:
- ネコを60度ずつ回転させてクローンを作る
クローンのスクリプトは:
- 100歩動かして真ん中から離れる
- 90度に向けて、色を薄くする
上の図の状態は、ちょうど逆さまになった時のクローンが真ん中に作られ、
オリジナルは左上を向いて次のクローンを作る瞬間です。
これから分かるように、オリジナルはクローンを作る度にただ回転をして、
クローンの歩く方向を決めているだけです。
そして、クローンのスクリプトは、
クローンされてから100歩動いて、色や向きを変えていますね。
クローンのスクリプトの命令は一つですが、それぞれのクローンはその命令にその通りに動く。
クローンが6体作られたら、それぞれのクローンに対してそれぞれのスクリプトがあるようなイメージ(上の例では、6つのスクリプトがクローンの順に命令をしている)
それぞれのクローンが作成された直後に、それぞれのクローンへの命令を作る場所となる
変数や乱数を使う事で、スクリプトは一つでもそれぞれのクローンに違う動きをさせることができる(下でクローンの大きさを変える例を紹介)
変数を使う事で、クローンの大きさが変わるスクリプトを紹介します
クローンされるたびに大きさが10%ずつ変わるのがわかりますか?
クローンが少しずつ大きくなってる!!
”クローンされたとき”のブロックに続くスクリプトはひとつなのに、6つのクローンの位置と大きさは変わるんですね
オリジナルとクローンの両方に関係するブロック
スクリプトの先頭となるブロックに、次のようなイベントのブロックがあります。
この中で、先頭にある”旗が押されたとき”のブロックは、
先ほどの説明にもあったようにオリジナルのスプライトへの命令に使います。
それ以外のブロックはオリジナルとクローンの両方のスプライトへの命令をすることになります。
分身の術を使ったオリジナルのネコを矢印キーを押したときに隠すとき、
”隠す”のブロックはどのブロックの下に入れるのが良いでしょうか?
”○○キーが押された”なら”隠す” という命令を3つのブロックの下において動きを確認してみます。
- 旗が押されたとき: 上向きキーを押すとオリジナルが消える
- クローンされたとき: 下向きキーだとクローンが消える
- イベントブロックのキーが押されたとき:オリジナルとクローンが消える
どのブロックの下でも同じだと思ってたけど、全然違うんですね!
また、スプライトをクリックすると右に回るオリジナル、左に回るクローンと動きが別々になりますが、
色はイベントのブロックで命令してるのでオリジナルもクローンも色が変わります。
これらのブロックの下で作られるスクリプトは、オリジナルとクローンの両方のスプライトへの命令をする
○○キーが押されたとき: ”調べる”にある”○○キーが押された”と同じ意味で、オリジナルとクローンの両方に命令する
このスプライトが押されたとき:”マウスポインターが押された”かつ”マウスが押された”と同じ意味で、オリジナルとクローンの両方に命令する
背景とメッセージのブロック: オリジナル、クローンの両方に命令する