ではまずタイマー機能をつけましょう。これは前の時にも勉強したようにStartTimerコマンドを使えばいいのですよね。
何かゲームの開始を告げるようなボタンを作って、それを押すことによってタイマーが作動するようにします。そしてある一定の時間が経てば終了するようにしてやります。これはヒントだけにとどめておきますね。
あとは画面を見栄えよくすればゲームのできあがりですよね。なぁんだ、結構簡単にできちゃった。
では色々工夫してみて下さいね。
はぁい。
ほほぅ、これは大したモノですね。色々な工夫がされていますね。まず時間の流れを横棒で表すのはどのようにしたのですか?
さっき使ったthe width of sprite っていうので横幅を設定したんですよ。経過秒数/10秒(制限時間)のパーセンテージを出して、横幅に掛けているんです。こうすると棒がのびているように見えるでしょ。でも、実際は二つのシェイプキャストを重ねているのですよ。
set the width of sprite 3 to float(191.00 * (the timer /600.00))ちゃんとfloatってコマンドもつかっているでしょ!すごいでしょ!
ほほう、これは素晴らしい。float(浮動小数点)を使わないと割り算の結果が整数でしかでてきませんからね(つまり0か1しかでてこない)。よく気がつきましたね。
いえいえ、単に試行錯誤していただけですよ。あと色々工夫してみたので、また見て下さいね。(内心「ふっふっふ」と思っているらしい)
クリックするとキャストが入れ替わる部分のスクリプト
( 爆発マークのキャスト番号は12番になっています)
on mousedown
global score
set score=score+10
--まずは爆発マークの色を赤色(35)にします
--すでに爆発マークのキャストは1ビットに変換してあります
set the forecolor of sprite 10 to 35
--爆発マークに入れ替えます
set the castNum of sprite 10 to 12
--フレーム移動をしていないので、強制再描画します
updatestage
beep
put score &"pts"into field "score"
--次は色を変更します
--modとはあまりを求める関数です
--色番号は255番までしかないので、このように記述します
set the forecolor of sprite 10 to score mod 250
--元のキャストに戻します
set the castNum of sprite 10 to 1
updatestage
end
--マウスを上げたときに瞬時に移動しないと
--ずっとクリックすることができます(実際にやればよくわかります)
--ですから「即」移動するようにします
on mouseUp
move 10
updatestage
end
--これは時間経過を判断するスクリプトです
on exitFrame
set the width of sprite 3 to float(191.000 * (the timer /600.000))
if the timer >600 then
go to "end"
else
go to the frame -3
end if
end
--文字が大きくなる部分のスクリプトです
on exitFrame
set the textSize of field "score" to the textSize of field "score"+2
end
稟さん、今回はがんばりましたね!この調子で次回もがんばりましょう!