親スクリプトって何?(実践編2)
もどる すすむもどる                 すすむ
親スクリプトって何?(実践編2)
今までの総復習
補助ハンドラの記述
補助ハンドラの実行
サンプル


凛のかお ステージサイズとか決まりました?

豪のかお はい、ステージサイズ400*300、ボールの位置はスタートはステージの上から、下に移動する、全部で10個動かし、スプライト番号は1から10まで……こんなところでどうですか?

凛のかお ふむふむ、だいぶイメージがわいてきましたよ。

豪のかお では今までのスクリプトの復習です。

on startMovie
 --ここでリスト定義を行っておくと便利
 global gKodomoList
 set gKodomoList=[]
 --パペットの定義もしておこう
 repeat with n=1 to 10
  puppetSprite n,TRUE
 end repeat
end 

次に別のスクリプトを用意してこのように書く
スクリプト名は"oya"とでもしておきましょう
--プロパティ定義ですね
property myH,myV,mySpNum,myColor

on new me,m
 set myH=m*30+25
 set myV=-10
 set mySpNum=m
 set mycolor=random(255)-1
 return me
end

次に別のスクリプトを用意してこのように書く
--親スクリプトを動かす為のハンドラです
on MakeBalls
 global gKodomoList
 repeat with m=1 to 10
  setAt gKodomoList,m,new(script"oya",m)
 end repeat
end

凛のかお ううむ、難しいなぁ……二つ目の親スクリプトで緑色で書いている部分がありますよね。これはどういう意味なんですか?

豪のかお いずれにせよ画面表示をするためにはスプライト番号を指定して実行しないといけないわけなんですよ。……さっきの話と矛盾するかも知れないけど、最後まで聞いて下さいね。で、「子」にスプライト番号の札を持たせておくんです。その時に10人の「子」を作るわけですから、リピート文を使いますよね。その時ついでに番号も渡してしまえというわけで……。ほら、ハンドラMakeBallsで引数を渡している部分があるでしょ?new(script"oya",m)の部分です!

凛のかお よ〜くみたらわかりますねぇ……でもこんなの自分で考えつかないでしょ?

豪のかお いえいえ、これはよくあるパターンで定石と言っても過言ではありませんよ。一度覚えてしまえば、あとは使い回しがききますから。

凛のかお ま、これで「子」が誕生したわけですよね。で、これを動かすにはどうすればいいのですか?

豪のかお はい、補助ハンドラを書いてみましょう。このハンドラはボールが下に行くとまた上から降ってくるように設定してあります。親スクリプトの下に続けて書くとわかりやすいですよ。まだキャストの色についての部分は書いていません。今回使用したプロパティはmySpNumとmyVだけです。

on move me
 put the locV of sprite mySpNum into NowV
 if the NowV >=300 then
  set myV=-20
 else
  set myV=NowV+10
 end if

   set the locV of sprite mySpNum to myV end

凛のかお え?これで終わりなんですか?たったこれだけなんですか?

豪のかお ええ、簡単でしょ。

凛のかお ま、簡単なのはいいことだわ。で、これを実際のムービーで使おうと思ったら、どこかのフレームスクリプトとかにmove meって書けばいいの?

豪のかお いいえ、それは大きなミスです。ほら、最初の時に説明したでしょ、「子」のことを「きみ」って呼ぶんでしたよね。だからちゃんと名前を呼んであげなくちゃいけませんね。たとえばフレームスクリプトにこんな風に書いてみたらどうかな? on exitframe
 global gKodomoList
 repeat with m=1 to 10
  move getAt(gKodomoList,m)
 end repeat
end

凛のかお あ、そうか、ここでさっきのリストを使うんだ。リストの○番目の君はこうしてね、はい、次は○番目のきみはこうしてね……って感じで命令を送るんですね。

豪のかお そうです!これでひとまずは完成したわけですね。実際にどうなるか見てみましょう!


参考作品
ちょっとだけ上のソースに書き加えています
凛のかお へぇ、なかなか面白いですね。さすがに親スクリプトは難しかったけど、少しずつ着実にやっていくと簡単ですね。概念さえマスターしてしまえば、あとはちょっと難しいパペットスプライトみたいなものですね。なんだか色々なことが出来そうな気がしてきましたよ。色々つくってみよっと。

豪のかお がんばって下さいね。これでほぼLingoの知識は身についたはずですよ。自信をもって、いろんな作品を作って下さいね!たとえば、今回のテクニックを少し応用すると、「雪のムービー」のようなものが作れるんですよ。

凛のかお おーし、やってやるぜ!

すすむホームに戻る


(c)Akira SAno 1996.1997
一応こんなページでも著作権は佐野彰に存在します
リンクフリーですが、メールでご連絡頂けたら嬉しいです。
homeホームに戻る