できるがな(3)-2
もどる すすむもどる                  すすむ

「できるな」

神経衰弱を作りたいっ!(2)

さて、ではまずキャストから紹介しましょう。とりあえず下の図のように配置して下さい。1から10番までのキャストは表に向けたときのキャストです。11番目は裏向きカードです。12-14番目はスクリプトです。また15番目はボタンです。

キャストの図
キャストの制作まではできたのですが、スクリプトを書き込むにはどうすればよいのですか?

はい、詳しく説明していきましょう。まずはキャスト番号12番のスコアスクリプトです。キャスト12番のマスを選択して下さい。その時点で<ウィンドウ>メニューから<スクリプト>を選択して下さい。そうすると<ムービースクリプト12>というウィンドウが開きます。そこに以下のスクリプトをコピー&ペーストしましょう。できるだけ画面をヨコ一杯にのばすと便利ですよ。

global cardList,myList,uraCardCast,waitTime
--
on startMovie
repeat with m=1 to 20
puppetSprite m,TRUE
set the castNum of sprite m to uraCardCast
updatestage
end repeat
set cardList=[1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10]
set myList=[0,0]
set uraCardCast=11
set waitTime=3
shaffle
end
--
on shaffle
global cardList
repeat with m=1 to 100
put random(20) into changePoint
put getAt(cardList,changePoint) into targetNumber
deleteAt cardList,changePoint
setAt cardList,20,targetNumber
end repeat
end
--
on hantei
if getAt(cardList,getAt(myList,1))<>getAt(cardList,getAt(myList,2)) then
startTimer
repeat while the mouseUp
if the timer < waitTime*60 then
nothing
else
set the castNum of sprite getAt(myList,1) to uraCardCast
set the castNum of sprite getAt(myList,2) to uraCardCast
updatestage
end if
end repeat
set the castNum of sprite getAt(myList,1) to uraCardCast
set the castNum of sprite getAt(myList,2) to uraCardCast
updatestage
else
beep 2
end if
set myList=[0,0]
end
これをコピー&ペーストして、最後の行でリターンを押すと、きちんと段付けが行われるのですよね。

はい、これでオッケーですよ。では次にステージにキャストを配置していきましょう。ステージサイズは特に指定していません。今回はどんな大きさでも動作するように設定しています。きちんとカードを並べるもよし、でたらめに並べるのもよしですね。Directorのversion5を使っているのなら「グリッド」を使うときれいに並べることができますよ。

ステージの図
グリッドを使用するときれいに並べることができる
こんな風にキャストを配置して下さい。スコアはこんな感じの配置になります。

スコアの図
スコアはこんな感じになります
はい、できましたよ。次は13番目のスクリプトですね。これはどうすればいいのかな……あ、これは簡単ね。スコアスクリプトだから、そのままクリックして書き込めばいいのね。えっと……
on exitFrame
go to the frame
end
ですね。

はい、その通りです。さ、次はちょっとめんどくさいスコアスクリプトです。スコア上で赤くなっている部分がありますよね。そこを選択して下さい。はい、選択できましたか?ではそこでこの部分をクリックして下さい。

ここをクリックの図
この部分がポコっと膨らんで、ボタンになるのでクリックします

そこをクリックすると<スコアスクリプト>が開きます。そこにこれをコピーペーストして下さい。それだけの動作で都合20個のスプライトでこのスクリプトが動作するようになります。
on mouseUp
global CardList,MyList
put the clickon into mySpNum
if getat(Mylist ,1) = 0 then
setAt mylist, 1, mySpNum
set the castNum of sprite mySpNum to getAt (CardList,mySpNum )
else
setAt Mylist , 2,mySpNum
set the castNum of sprite mySpNum to getAt (CardList,mySpNum )
updatestage
hantei
updatestage
end if
end
さて、残るはボタンのキャストですね。

スコアの様にボタンを配置して下さい。そしてそのボタンキャストにスクリプトを書き込んで下さい。ええと、書き込み方はここをクリックして下さいね。そして以下のスクリプトをコピーペーストします。

スクリプトボタンの図
スクリプトを書き込むにはここをクリック
on mouseUp
startMovie
go to frame 1
end
さて、これで完成ですね!さてちょっと試してみよっと。あ、動いた!やったぁ!


基本的な神経衰弱
スクロールの加減で画面が消えるかも知れませんが
その時にはresetボタンを押して下さい。

これをベースに色々なモノを作ってみると面白いでしょうね。さて、実はこのスクリプトには1箇所バグがあるのです。一体どこを治せばいいのかわかりますか?ま、致命的なバグではないのですが、それをなおしたいのだったら、このスクリプトについてよく知っておく必要がありますね。

ううむ、そういう手に出ましたか……くそぅ

つぎにゆく


© Akira SAno 1997
All rights reserved.
homeできるなメニューにもどる