スクリプトを書き込めばいい場所はわかったんですけどね……なんてかけばいいんでしょ?
とりあえず得点などと考えるとしんどくなるので、まずは動作するかどうかだけを確認してみましょう。キャストスクリプトに以下のように書き込んで下さい。
on mouseUpこうすればこのキャストがクリックされるとビープ音がなるはずです。試してみて下さい。
beep
end
あ、確かになりましたね。じゃスクリプトの位置とか動作は間違っていなかったんだ。じゃ、あとはこれを得点換算に直せばいいのですよね。ええと、じゃ、こんな風にしたらどうなるかしら。
on mouseUp
beep
set score=score+10
end
ううん、それでは得点が加算されませんよ。この変数scoreってやつは何度もつかう変数ですよね。グローバル宣言ってやつをしておかないと、次にこの命令を実行したときには、この変数の値をすっかりわすれてしまいますね。それにあと一つだけあるのですが、この変数の初期値……つまり最初の値が入っていませんよね。これでは足し算ができませんよ。
はぁい。じゃ、まずはグローバル宣言と初期設定をon startMovieに書き足しておきましょうか。
on startMovieあとそれと、キャストスクリプトも1行足しておきましょう。
global score puppetSprite 10,TRUE
set the widht of sprite 10 to 50
set the height of sprite 10 to 50
set score to 0
end
on mouseUp
beep
global score set score=score+10
end
これで大丈夫なはずですよ。あとはこの得点を見えるようにすればいいのですよ。さっきのキャストスクリプトのendの直前の行にput scoreって書いておきましょうか。宛先なしのputはメッセージウィンドウに値を出力します(ver5.0をお使いの方はウォッチャーウィンドウをお使いになるのが一番簡単です)
あ、ゲームらしくなった。あとはこれをフィールドに表示させればいいのですよね。ええと、画面にツールパレットからフィールドツールを選択して、ステージ上に書き込んで……このフィールドに名前をつけて……ええと"score"って名前にしておこう。ちゃんとスコア上でフレーム1から5までインビトゥインしてと……
そしてキャストスクリプトにこの行を足しておきましょうか。
on mouseUpこれでフィールド上にスコアが表示されるはずですよ。でもこれではちょっとおかしいところがありますね。
beep
global score set score=score+10
put score into field "score"
end
え?どこですか?あ、そうか、クリックするまで得点が表示されないんだ。……ということはstartMovieのハンドラに得点を表示するように、つまりゲーム開始時に得点を表示するようにしておけばいいのだ!わかったわかった。つまり
on startMovieってな感じにすればいいのね。
global score puppetSprite 10,TRUE
set the widht of sprite 10 to 50
set the height of sprite 10 to 50
set score to 0
put score into field "score"
end
はい、その通りです。これでとりあえずはゲームになりましたよね。これから色々な機能を付けていこうと思います。