スプライトを配置して、それにスクリプトを加えていくという基本的なScratchでの制作の流れは理解できたと思う。
猫とネズミとりんごが必要なら3つのスプライトを配置してそれにスクリプトを加えていけばよい。
では、シューティングゲームの弾丸とかはどうすればよいだろうか?
スプライトを複製して数を増やすことはできるが、そもそもどのくらい複製しておけばよいのか見当もつかない。
そういった時に便利な仕組みがクローンだ。
さっそくやっていこう。
いつものように新規プロジェクトを作って。「旗がクリックされたとき」の下に「自分自身のクローンを作る」を配置して、実行してみよう。
ん、変化なし?
いやそんなことはない、しっかりクローンが作られている。猫ちゃんをドラッグしてみよう。
おお!発見!
そう、自分自身のクローンを作ったので位置も何もかもが完全に一致して見えなかったのだ。
このようにあらかじめ用意をしておかなくても、必要な時にプログラムによって生成できるのがクローンだ。
ここで、クローンとして生成されたものは見た目はもちろんのこと、持ってるスクリプトなども完全に同一と考えて良い。
ところであなたがさっきドラッグしたのはオリジナルであろうか、それともクローンであろうか?
答えはオリジナルだ。実行終了ボタンを押してみよう。
クローンが消えた!
このようにクローンは実行が終了すると消える。
一番わかりやすいたとえは分身の術であろうか。
見た目も能力も完全にオリジナルと一緒ではあるが、あくまでも術によって登場しているだけであって本体は一人だ。
ただ、ここで疑問に思う。同じものを同じ場所に作って何か意味があるのだろうか?
[クローンされたとき]
そこでこの「クローンされたとき」が意味を持ってくる。
これはクローンによって誕生したとき、ようは分身として登場した時に処理を走らすことができる。
このようにブロックを配置して、実行してみよう。
クローンされた方が(50,50)の座標に登場した!
ちなみにクローンで生成された方が重なりが奥であることもわかる。
クローンはいくらでも増やせる。早速やってみよう。
10体のクローンを生成するのだが、何もしないと重なってしまう。countという変数を作って少しずつずらしてあげよう。
おお、まさに分身の術!
このように一つのオリジナルをもとに簡単にクローンを生成できることがわかる。
こうして生成されたクローン、もちろん削除することもできる。
「このクローンを削除する」を使って削除するのだが、わかりやすいように少し止めてから削除している。
こうして実行すると、順番に消えていくのがわかるだろう。
旗がクリックされた時に10人の分身を一瞬で作って、その作られた分身たちがそれぞれ「クローンされた時」の処理を行う。
一人目は(5,50)の座標に登場し、1秒後に消える
二人目は(10,50)の座標に登場し、2秒後に消える
三人目は・・・
この処理の流れを理解しよう。
では最後に少し面白いことをやってみよう。
このようにブロックを並べて実行してみよう。途中にある「前に出す」は重なり順を上にするという役目をする。
わぉ!
なかなかアーティスティックな作品ができた。
処理で目を引くのはクローンが自分をもとにクローンを生成している点だ。
分身の術で誕生した分身が、分身の術で分身・・・
ただ、当然だがオリジナルは一人。実行停止ボタンを押せば分身は全て消える。。。
[まとめ]
今回は今後のゲーム作りでとても大切となるクローンについて学んだ。ただ、難しい要素も含んでいるので今後作品作りを通して少しずつ慣れていこう。
[今回の作品]
[今回のプロジェクト]
https://scratch.mit.edu/projects/166295900/
コメント