Shock Wave ゲームを作ろう
「モグラたたき」を作ろう
(その5)


12 もっとゲームらしく。
これでようやくゲームを作ってる気分にはなってきましたが、ゲームとして成り立たせるには、まだまだ役者が足りません。
「スタートボタン」、「得点表示」、やはりこのふたつがないとゲームらしくありません。

再生フレームを1フレーム目に戻し、さっそくツールパレットの[ボタン]をクリックして、ステージにボタンを描きましょう。描くとアイカーソルが点滅しますので、"start"と入力します。
次にツールパレットの[フィールド]をクリックして、ステージに得点表示するスペースを描きましょう。ここにはとりあえず"0"と入れておきましょう。




ボタンを作ったら、ボタンにはもちろんスクリプトが必要です。内蔵キャストの5番目をクリックで選択して、キャストメンバースクリプトボタン、または"ウィンドウ"メニュー > "スクリプト"でスクリプトウィンドウを開きます。開いたら次の様に入力しましょう。

on mouseUp
 put "0" into field 6
 go to "1"
end

これは、「このボタンがクリックされたら(このボタン上でマウスがアップされたら)キャストメンバーの6に文字"0"を表示しなさい、そしてマーカー▽1へ行きなさい。」と言う意味になります。

では次にスコアのフレーム9のフレームスクリプトの部分をダブルクリックします。ここには次の様に入力します。

on exitFrame
 go the frame
end

これは、「このフレームを出たらこのフレームに行きなさい。」つまり、「このフレームで止まっていなさい。」と言う、非常によく使う命令です。
ここまでできたらコンパイルし、動作確認をして保存しましょう。
これで「スタートボタン」でスタートするようになりました。

13 得点を表示しよう。
では次に、得点表示を編集してみましょう。今のままでは文字が小さ過ぎますし、ゲームが始まったら消えてしまします。
スコアでスプライトの9chをフレーム50まで延長し、さらに9chをダブルクリックしてフィールドウィンドウを開きます。ここで全てのテキストをドラッグで選択し、フォントを24ポイントにします。ステージで確認したら、フィールドウィンドウは閉じてかまいません。



後はモグラがクリックされた時に、得点をプラスしてあげればOKです。内蔵キャストの2「モグラ」を選択してスクリプトウィンドウを開きます。
ここに書くスクリプトは以下のとおりです。

on mouseDown
 set tokuten = value(the text of member 6)
 set tokuten = tokuten +1
 put tokuten into field 6
 go to "1"
end

ここでは「on mouseUp」ではなく「on mouseDown」になっていることに注意して下さい。モグラを「たたく」わけですからここの命令は、マウスのボタンが押された瞬間に実行されなくては困るからです。ここでやっていることは、「現在表示されている得点(the text of member 6)を数値に変換し(value)、それに1を加えて(set tokuten = tokuten +1)表示する(put tokuten into field 6)」と言うことになります。

14 いよいよ仕上げです。
これで一見、完成したかに見える「モグラたたき」ですが、ここで最後の仕上げです。今まで書いたスクリプトに少し命令を追加して、完璧なゲームに仕上げましょう。
まず内蔵キャストの5「スタートボタン」のスクリプトに2行ほど命令を追加します。

on mouseUp
 puppetTempo 5   --追加
 startTimer     --追加
 put 0 into field 6
 go to "1"
end

それぞれ、再生スピードを1秒間に5コマにする命令(puppetTempo 5)と時間の計測をスタートさせる命令(startTimer)です。
次に内蔵キャストの3"飛ぶ"に新たに5行を追加します。

on exitFrame
 if the timer > 1800 then --追加ここから
  go to 1
  exit
 end if
 puppetTempo (the timer/200 +5) --追加ここまで
 set X = random(8)
 go to string (X)
end

2〜5行目まではif文です、"if"と"then"の間の条件式が成立する場合のみ、"then"〜"end if"までの命令が実行されます。ここでは「先程の時間計測のスタートからの時間(the timer)が30秒(1800tick)を超えたら、最初のフレームに戻り(go to 1)、end if 以下は実行せず命令を中断する(exit)」と書かれていることになります。つまり30秒でゲームセットになる訳です。

6行目では再生スピードを、最初の5から時間経過と共に少しずつ早くしています。モグラの動きをだんだん早くするためです。
ではコンパイルして再生してみましょう。「モグラたたき」の完成です。完成したdirファイルはここに置いてありますので、うまく動かなかった人はこのファイルをローカルに保存して、どこが違うのか比べてみて下さい。
次の項ではWebにのせる方法について少し説明しましょう。


PREV   伝言板   NEXT