親スクリプトって何?(実践編1) |
はい、ではこんな場合を想定してみましょう。
1)ボールが上から降ってくる
2)ステージサイズよりも下に行った場合は、また上から降ってくる
ふむふむ、それならなんとかなりそうですね。
はい、ではまずは子のプロパティの定義から始めましょうか。ムービースクリプトのウィンドウを開いて下さい。
はい、で何から書き始めるんですか?onからですか?
いえいえ、propertyと書き始めて下さい。ここがちょっと違うところなんですよ。で、その後にプロパティを自分で決定するのです。
自分で決定するのですか、ええと、何をつけたらいいのかな?
まずボールがふってくるんで、その垂直座標と水平座標をプロパティで決めましょう。
つまり?
つまり
property myH,myVと書いてみましょう。
あれあれ?なんでみんなmyがついているの?
暗黙の了解で、子オブジェクトのプロパティはみんなmyで始めるようにしているんですよ。グローバル変数はgで始まるのと同じですよ。
ふぅん、(なんとなく)わかりました。では次は何をするんですか?
では次に「親スクリプト」を記述します。これは厳密な書式が決まっています。
ふぅん、だったらさっきのプロパティの場合だとこういう風に書けばいいのかな
on new me
おっけーです。それで大丈夫ですよ。親スクリプト自体はそんなに長くならないんですよ。陰ながら見守っているというイメージがぴったりきますね。さ、次はそれを動かす場合です。親スクリプトを動作させるスクリプトをかきましょう。
それは本で調べたんですよ。ええとnew (script"スクリプト名")でしたっけ?
そうですよ。でもそれは1つだけ作る場合でしょ。たいていの場合は何個もつくるので、その手法を覚えておきましょうね。リストを使います。たとえば10個のものをつくとうとした場合は
repeat with m=1 to 10
ううむ、ややこしくなってきたぞぉ……色々疑問が出てきた。なんでリストを使うの?
子どもを管理するときに、リストの中に入れてしまうのが一番簡単な方法なんですよ。今はあまり疑問に思わずに「あ、リスト使うんかいな」程度で軽くかわして下さい。さきほどのスクリプトではsetAtの部分でリストの中に「子」を入れているんです。リストの中身は[
ふむふむ、そこまではいいとしましょう。
では次は補助ハンドラを記述しましょう。
よーし、やってやるぜ!
「子」を動かす場合のハンドラはみんな面白い形をしています。
ねぇねぇ、ここまでのスクリプトをまとめて、具体的な数字をいれてやっていきませんか?
そうですね。では次のページでもっと詳細に決めながらすすめていきましょう。
on new me
と記述します。最後のreturn meは絶対に書き忘れてはいけません。
set myH= (なんらかの値)
・・・
return me
end
property myH,myV
ってすればいいのかな?まだ具体的な数字はわかっていないけどね。
set myH=(何か)
set myV=(何か)
return me
end
global gKodomoListと、まずどこかで定義しておきます。
setAt gKodomoList,m,new(scipt"スクリプト名")
end repeat
on なんたら meという形になり、み〜んなmeというオマケがついてきます。なんだかおフランスの雰囲気がしますがね。このmeというのは、前回説明したとおりに「子」がこの命令を読んだときには「私がこの命令を実行すると」と理解する訳なんですよ。だからmeで書くのが決まりになっています。
一応こんなページでも著作権は佐野彰に存在します
リンクフリーですが、メールでご連絡頂けたら嬉しいです。
ホームに戻る