このブログテーマでは、スクラッチの初心者から上級者まで、ちょっとお役に立つ情報を不定期で紹介していきます。
スクラッチ講座、投稿記事のまとめはこちら(一分間スクラッチ講座 まとめ)でご参照ください。
今回はブロック崩しなどでよくみられる、縦〇段、横□段の整列されたブロックを作る方法をご説明します。「〇回繰り返す」を2つネスト(入れ子)にしてクローンを作っていきます。
下の動画は不定期配信の「ファイブボックス一分間スクラッチ講座」です。ご興味のある方は併せてご参照ください。
1,素材の準備
クローンのもととなる、長方形のスプライトを作成します。
サンプルでは塗りつぶしの色を赤色、枠線を線幅1の白にしています。
この先のプログラムで色を変更していくので、明るさ、鮮やかさが大きい色を選択すると良いでしょう。
枠線はクローンされたときに、隣のブロックとの境界線になる部分です。塗りつぶしの色と区別がつくように白を選びました。

2,ブロックのプログラム
ブロックのプログラムは以下のようになります。
旗が押されたとき
隠す 本体は隠します(クローンの基本)
大きさを 50% にする 横幅:100、高さ:38で素材を作ったので、50×19
y座標を 140 にする 左上のクローンのスタート位置です
以下の処理(列の作成)を8回繰り返す(行の作成)
x座標を -200 にする 列のスタート位置を指定
以下の処理を9回繰り返す
自分自身のクローンをつくる
x座標を50ずつかえる
y座標を -20 ずつかえる 次の行へ移動
色の効果を25ずつかえる(200を8回で割った値)
クローンされたとき
表示する 隠れた状態で生成されたので、表示します

これで9列×8段のブロックが出来上がりました。
でも生成するまでに、時間がかかっています。これはずっと内部の処理速度が影響しています。スクラッチは1秒間に約30回程度しか処理を実行しないので、9×8=72このブロックを作るには2秒以上かかってしまいます。
3、処理の高速化
「ブロック定義」を活用して、この処理を瞬時に実行します。

上で作成したスクリプトの繰返し処理を、定義「ブロック作成」に移動します。
旗が押されたらにつづくスクリプトでは、作成した「ブロック作成」を呼び出します。

これで旗が押された瞬間にブロックが生成されるようになりました。
ファイブボックスでは、スクラッチやUnityの個別指導のオンラインレッスンを行っています。
Comments