このブログテーマでは、スクラッチの初心者から上級者まで、ちょっとお役に立つ情報を不定期で紹介していきます。
作成済みのプロジェクトでは、1つの足場をスクロールで移動させることで、Playerが移動しているかのように見える演出を作成しました。
今回はこのスプライトをクローンで複製し、複数個の足場を作ってみます。
今回の完成作品を共有しますので、イメージがつかめない場合は以下をご参照ください。
下の動画は不定期配信の「ファイブボックス 一分間スクラッチ講座」です。ご興味のある方は併せてご参照ください。
作成済みのスクリプトの確認
この作品では、すでにジャンプの動きとスクロールの動きを作成しています。
Catのスクリプト
Catは上キーを押したときに、ジャンプをします。ブロック定義を使ってもぐりこみの回避と天井跳ね返りを実現しています。
左右のキーを押したときは、変数:スクロールXの値を更新しています。Cat自身はX座標を固定しているところがポイントです。
ブロックのスクリプト
障害物や足場の役割をするブロックには、次のスクリプトを作っています。
「このスプライトのみ」にチェックを入れて、クローン1つ1つがそれぞれ自分自身の値を持つことができるローカル変数:初期位置X を用意しています。
初期位置X には初めに配置されるX座標の値を指定します。画面の範囲外、例えば1,000とか20,000とかでもいいですよ。
ずっとの中では、指定した初期位置XとCatがコントロールする変数:スクロールX を使って、現在のX座標を取得しています。
コスチュームの作成
ここでは複数の形のコスチュームを作ってみましょう。
サンプルでは下の図のように3種類のブロックを用意してみました。
ブロックスクリプトの改造
まずは下のように作成済みのスクリプトを、ずっとの前後で2つに分けます。
一つは本体、つまりクローンを作る側の動きとなるもの。
もう一方はクローンの動きになります。
本体側は以下のようにプログラムを修正します。
■ 旗が押されたとき
- 隠す(クローン本体は隠す、これ基本)
- 変数:初期位置Xを指定
- y座標を指定
- コスチュームを指定
- 自分自身のクローンを作成(2~4の状態を持ちでクローンを作成)
■ クローンされたとき
- 表示する(本体が隠れているのでここで表示)
- ずっと以下の処理を実行
- x座標を 初期位置X+スクロールX にする
クローンが1つならこれでOKなのですが、複数作成する場合は「ブロック定義」を活用すると便利です。
今回はブロック定義「クローン」を作成、引数を3つ用意します。
それぞれの引数の名前をX、Y、コスチューム に指定します。
作成したブロック定義には、先の課題で作成済みの旗が押されたときの動きの2,~ 4, を移動して貼り付けます。
最後は作成したブロック定義を使ってクローンを作ります。
サンプルでは3つのクローンを作りましたが、作りたい数だけブロック定義を追加してください。
ブロック定義には3つの引数を入力する枠ができていますが、左から初期位置X、Y座標、コスチューム番号の順番です。
これで、複数のクローンが同時に動くようになったと思います。
ただステージの左右に、クローンしたブロックが張り付いているのが気になります。
次回はこれを修正します。
ファイブボックスでは、スクラッチやUnityの個別指導のオンラインレッスンを行っています。