広告
プログラミングって難しい!?
そんな事はありません!
Scratch(スクラッチ)を使えばカワイイキャラクター達と一緒にブロックを組み合わせるだけで簡単にプログラミングのキホンを学ぶことができます!
インターネットにつながるパソコンがあればすぐに始められますので「プログラミング授業の参考にしたい!」「まずは軽いプログラミングに触れてみたい!」などなどぜひ当サイトをご利用ください。
今回は複製を作る「クローン」というテクニックを紹介します。
クローンに必要なブロックは「制御」の部分に用意されております。
このへんのブロックを使います。
何を言ってるのかわかりづらいと思いますので、まずは「クローン」を使ってプログラミングしてみます。
実行すると・・・、
ネコちゃんのクローン(複製)ができました。
「クローンされたとき」ブロックに続けてそのクローンにさせたい動きなどをプログラミングしていく事ができます。
だからどうした?という話ですよね。
この「クローン」を上手に使えばゲームでたくさん敵を出現させたい時などたくさんのスプライトを追加する事なくシンプルにプログラミングする事ができます。
さっそく試してみましょう。
「クローン」を使ってネコちゃんを3匹出現させます。
せっかくなので「乱数」ブロックも組み合わせて毎回違う場所に出現させてみます。
何回か旗を押して実行してみると・・・、
押すたびにネコちゃんが3匹毎回違う場所に出現するのが確認できたと思います。
慣れるまでは少し難しいテクニックになると思いますので少し説明します。
まずは複製を作る為の元のスプライトを用意します
今回の場合はネコちゃんが元のスプライトになりますね!
クローンを使う時に元のスプライトにも動きなどをつけてしまうとプログラムがややこしくなるので元のスプライトはすぐに隠してしまいます。
繰り返しなどを使って必要な数だけクローンを作ります。
そのままだと隠れたままなのでとりあえず表示させております。
同じ場所に重なっているので1匹に見えますがちゃんと3匹おります。
マウスでネコちゃんをドラッグして確かめてみましょう。
そして「クローンされたとき」に続けてクローンの動きを作っていきます。
今回は乱数の結果を保存する用の変数を「すべてのスプライト用」で「乱数x」・「乱数y」という名前で用意して、そこに乱数の結果を保存、あらためて「x座標を~、y座標を~にする」ブロックにあてはめる事で座標をランダムに設定しております。
そして初期位置が決まったら表示します。
別に変数を用意しないで「x座標を~、y座標を~にする」ブロックに直接乱数ブロックをはめても大丈夫です。
こんな感じでクローンを使えば簡単なプログラムでたくさんのキャラクターを扱う事ができます。
それでは「繰り返し」と「クローン」を使って9日目にやったりんご拾いゲームを書き換えてみましょう!
背景とりんごのスプライトを一つだけ追加しておいてください。
せっかくなのでりんごが出現する場所をさきほどのように乱数を使ってランダムにしてみます。
同じようにx座標とy座標の乱数を保存する為の変数を用意しておいてください。
ではプログラミングしてみましょう。
クリア処理などの細かい処理はすべて除いて大事な部分だけをプログラミングしていきます。
ネコちゃんの方はとりあえずの移動処理だけです。
続いて繰り返しとクローンを使ったりんご側の処理です。
実行してみましょう。
「繰り返し」と「クローン」を使う事によってシンプルにプログラミングする事ができましたね!
りんごもランダムな位置に表示されるようになりました!
クローンを作ったあとに「ずっと」ブロックを使って当たり判定をするというよく使われるテクニックになります。
ずっと「もしSprite1に触れたなら」を実行しておりますので旗マークがずっと実行状態になっているのが確認できるかと思います。
移動してりんごを拾っていきましょう。
りんごをすべて拾った時点で旗マークが実行状態ではなくなりましたね!
必要なくなったクローンは残しておくと思わぬエラーの原因になったり処理速度が落ちる原因になったりもするので削除してしまいます。
そしてすべてのクローンがなくなった時点で「ずっと」を実行しているブロックもすべてなくなるので旗マークの実行状態も消えます。
繰り返しブロックを使うようになるとプログラムが常に実行状態になるのでプログラムが今どこを走っているのかを想像するのも大事になってきます。
広告
なんかもの足りないので、もう少し工夫して動きをつけてみましょう。
振ってくるりんごを受け取るみたいなゲームにしてみます。
ネコちゃんのプログラムは下の方で左右に動くだけに変更しました。
続いてりんごをプログラミングしていきます。
クローンを作る部分ですが、「1秒待つ」ブロックを間に入れる事で1秒置きにクローンを作る事ができるようになります。
続いてクローンされたときの部分です。
最初にりんごを画面の上に配置してy座標を少しずつ下げるようにすれば「りんごが落ちてくる」という動きを作る事ができますね!
実行すると・・・、
次々にりんごが落ちてきてちょっとゲームっぽくなってきましたね!
今回はりんごが下まで落ちてしまった時も削除したいと思います。
「または」ブロックを使って条件を重ねれば簡単に実現できますね。
りんごが下まで落ちてしまった時なので「りんごのy座標が画面下の座標を超えた時」→「りんごのy座標<-180」という処理を加えればりんごが下まで落ちてしまった時も削除する事ができます。
スプライトの現在の「x座標」・「y座標」は「動き」ブロックの下の方にあります。
最後に横の動きもつけてりんごがちょっとナナメに落ちてくるというようにしてみましょう。
ナナメ具合もランダムにしたいのでナナメ具合を保存する変数を用意したいのですが、今度は「すべてのスプライト用」ではなく「このスプライトのみ」で用意します。
「x変化」という名前にしました。
「このスプライトのみ」で変数を用意すると表示がこのようになります。
それではプログラミングしてみます。
ネコちゃんは変わらないのでりんごのプログラムだけ変更します。
実行すると・・・、
りんごがナナメに落ちてくるようになりましたね!
最初にナナメ具合を乱数で取得してそれを「ずっと」の中でx座標に加えていく事で少しずつナナメにずらす事ができます。
ちなみにこのナナメ具合を「すべてのスプライト用」で用意してしまうとその乱数の値が変わるたびに全てのクローンがその方向に動いてしまいます。
動きの部分を工夫すればもっといろいろな動きもできるようになりますのでいろいろと試してみてください。
次回も「繰り返し」ブロックと組み合わせて使う「リスト」というテクニックを学んでいきたいと思います。
広告
Copyright 2016 K.N/petitetech.com