<html> <hr> <script language="JavaScript"> dramreset(); function dramreset() { function dramstop(btn) { |
ここまででも、十分にゲームとして遊べますが、問題点も残っています。 このように、動作テストをして問題点を洗い出すことを、デバッグと言います。 テストの結果、下記の問題点が見つかりました。 【問題点】 「おす」ボタンを3つ押さずにリセットボタンを押したとき、その前の絵柄が履歴に出現してしまう。 リセットボタンを何度か押すと、履歴のカウンターが不正に増えてしまう。 【改良点】 「おす」ボタンを押すまで、スロットの絵柄をクルクル動くようにしたい。 履歴の絵柄を更に綺麗に揃えて表示させたい。 |
ここからは変更のない部分は省略して表示することがあります。追記や変更は赤、場所の移動は青です。
(省略) function dramreset() { function dramstop(btn) { (省略) |
【問題点:不正な履歴の出力(1)】 3つの「おす」ボタンを押さずに「リセット」すると、表示の出目がそのまま履歴に表示されてしまいます。 ゲームの途中で履歴を出力できないように改善したいと思います。 まず、変数btn_numを用意します。 変数btn_numは、「おす」ボタンを押すと1つ増えますので、dramstop()の最後に実行します。 |
(省略) function dramreset() { (省略) |
【問題点:不正な履歴の出力(2)】 あとは、リセットボタンを押したときに、変数btn_numが「3」ならば、履歴を更新します。 履歴の表示はif文で既に処理されています。ここに2つ目の条件を書き加えます。
|
(省略) function dramreset() { (省略) |
【問題点:不正なカウントを止める】 リセットボタンを押すと、その分だけカウンターが増えてしまいます。 そこで、変数rrk_numが増える条件を設定したいと思います。 それぞれ「rrk_num == 0」「btn_num == 3」という条件式が書けます。 |
(省略) dramreset(); dramstart(); function dramreset() { function dramstart() { function dramstop(btn) { (省略) |
【改良点:絵柄をクルクル回す(1)】 スロットのドラムが回転するイメージをそのままアニメーションで表現するには、データの作り直しからしなくてはなりません。それでは
かなりの手間がかかるため、今回は表示する絵柄を入れ換えて変化させます。 絵柄の選択には乱数を使っていますので、スロットの回る表現にもこれを利用します。 初期設定が終わったら、そこでドラムを回させましょう。
dramstart()では、3つのドラムを回します。
dramstart()の内容を説明します。 1行目のfor文は3回繰り返すという処理です。 2行目のif文で、ボタンが使用禁止かどうかを判断しています。 3行目と4行目で、乱数を使って絵柄を決め、表示しています。 |
(省略) function dramreset() { (省略) |
【改良点:いらない記述を削除する】 機能的には全く影響はないのですが、ドラムの回転によっていらなくなった部分があります。 左の緑の部分は、絵柄をハズレに初期化する部分です。 行を削除するか、左のように行頭に「//」を入れて、コメントアウトして使えなくすることができます。 以降のソースでは削除してあります。 |
(省略) function dramstart() { (省略) |
【改良点:絵柄をクルクル回す(2)】 タイマーを使って、dramstart()を繰り返し実行しましょう。 ドラムを回転させるには、dramstart()を何度も繰り返す必要があります。
これを動かすと、明らかに新たな問題が発生します。 |
(省略) <form name="slot"> (省略) |
【問題点:絵柄の大きさが違う】 スロット用の画像を入れ換えると、それぞれの画像の大きさが違うため、それに合わせてテーブルの大きさが調節されます。 スロット用に用意した画像で一番幅が大きいのはネズミで64ドットあります。 画像のサイズに合わせてテーブルが動くので、これを最大のサイズに合わせて固定してしまえば、動かなくすることができます。 スロットの表示に使っている<td>タブで、幅を「width」、高さを「height」で設定します。 |
(省略) <form name="slot"> (省略) |
【改良点:レイアウトの調節(1)】 細かなレイアウトの修正をしておきましょう。
|
(省略) function dramreset() { (省略) |
【改良点:レイアウトの調節(2)】 履歴に出力される絵柄が微妙に縦に揃っていないので、これも修正しましょう。 3つの絵柄が1つの箱に入っていますので、1つ1つの絵柄を3つの箱に入れれば、今よりも綺麗に揃って見えます。 変数rrkにテーブル用のタグ付きで出目や得点が入っています。 変数rrkへ履歴を入れるときにもタグを使っているので、こちらからは余分なタグを消さなくてはいけません。 rrk = "<tr><td>" + rrk_num + "</td><th>" + s + "</th><th>" + scr + "点</th></tr>" + rrk; |
(省略) function dramreset() { (省略) |
【改良点:レイアウトの調節(3)】 あと少し履歴の表示に手を加えましょう。 最初の<td>と最後の<th>内に「align」オプションで指示します。 |
(省略) <script language="JavaScript"> (省略) function dramreset() { (省略) |
【改良点:累計得点の表示(1)】 スロットを連続でやっていると、そこまでの累計点を知りたくなりました。 累計得点用の変数rrk_scrを初期設定に置きます。 表示の直前に変数rrk_scrにその回の得点(変数scr)を足しています。 |
【改良点:累計得点の表示(2)】 得点が並んで表示されると分かり難いので、見せ方の工夫が必要です。 いくつかパターンを考えてみましょう。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
右の実例に対応した番号のソースを利用します。もちろん、色は好きな色に変更してかまいません。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
【完成】
スロットゲームの製作はこれで終了です。
デザイン的な変更はまだまだ色々考えられるでしょう。テーブルの色や大きさ、枠の幅を変えても雰囲気が変わります。
スロットの絵柄をオリジナルなものに変えて楽しんでみてください。
完成させたスロットゲームはHPなどで公開して、みんなに遊んでもらっても良いでしょう。
その場合は、「完成品を公開したい場合の注意点」を読んでください。