|
「スロットマシーン」のプログラム(JavaScriptを記述する) 「画面作り」で制作したHTMLの中に、JavaScript記入して行きます。 赤色の部分がJavaScriptで記入した部分です。 緑色の部分はコメントですので、記入する必要はありません。
|
スクリプト解説 (説明1) まず最初に、テキストボックスにメッセージを表示できるように準備します。 (テキストボックスにメッセージを表示) テキストボックスは、コインの枚数表示部分と、メッセージ表示部分の、2つありますので、それぞれについて設定します。 コイン枚数表示部分の<FORM>タグにcoinformという名前を、<INPUT>タグにcointextという名前をつけます。 これで、coinform.cointext.valueを実行すると、コインの枚数表示部にメッセージを表示することができます。 メッセージ表示部分の<FORM>タグには、myformという名前を、<INPUT>タグにmytextという名前をつけます。ここでつける名前は、コイン表示部と同じにならないように注意して下さい。 これで、myform.mytext.valueを実行すると、メッセージ表示部のテキストボックスにメッセージを表示することができます。 (説明2) 回転するドラムの絵の<IMG>タグにも名前をつけます。 左のドラムから順番にp1、p2、p3という名前をつけます。 これで、document.<IMGにつけた名前>.src="ファイル名"を実行すると、その画像を切り替えることができます。 (画像の切り替え) (説明3) 最初に必要な変数を設定しておきます。(変数) 最初に設定しておけば、いろいろな関数の中でその変数を使用することができるので便利です。 逆に、必要となるまでに設定しておかないと、エラーとなってしまうので注意して下さい。 それぞれの変数の意味については、スクリプト内のコメントを見てください。(コメント) (説明4) check()関数で、ゲーム中に使用する画像が全て表示(ダウンロード)されたかを確認しています。ダウンロードが完了していないと、ゲームスタートできないようにしてあります。 (画像のプリロード) ダウンロードが完了すると、次の3つのスクリプトが実行されます。 b=1; myform.mytext.value=" START を押して下さい。"; coinform.cointext.value=" $ "+coin; (説明5) 「スタート」というボタンを押すと、onclick属性によりhajime()関数がよびだされます。 (マウスによる処理参照) hajime()関数は、条件式(if文)により、b=1、jyun=3、coin>=1の3つを満たす時に動作する(スタートボタンを押せる)ようになっています。 (条件式 if文) (説明6) doramu1()は左、doramu2()は中央、doramu3()は右、のドラムを回転させるための関数ですが、内容的にはどれも同じです。このdoramu()関数は、「車でGo!」で車を走らせるhasiru()関数と全く同じ仕組みです。 kaiten1()関数を例に解説していきます。 kaiten1()関数は、タイマーugoki1によって150/1000秒後に再びkaiten1()関数を呼び出すようになっています。その為、kaiten1()関数は何度も繰り返し実行されることになります。 (タイマーセット・解除) しかし、実行されるごとに doramu1=doramu1+1 によって、doramu1の値が1づつ増える為、m1の値も1づつずれていき(0→1→2→3→4→0→1→2の順番)、条件式 if文の処理内容も変化していきます。 150/1000秒ごとに表示される画像が切り替わっていく為、ドラムが回転しているように見えるのです。 (画像を切り替える) (説明7) 「STOP」というボタンを押すと、onclick属性によりstop()関数をそれぞれ呼び出します。 (マウスによる処理) stop()関数は、clearTimeoutによりドラムの回転を止めます。 (タイマーセット・解除) 左のドラムを止めるのはstop1()関数、中央はstop2()関数、右はstop3()関数になります。 jyun=0の時は左、jyun=1の時は中央、jyun=2の時は右のSTOPボタンを動作させることができます。 これによって、ドラムは左から順番にしか止められないようになっています。 stop3()関数が実行されると、hantei()関数を実行するようになっています。 また、ドラムが3つとも止まったので、jyun=3とします。 (説明8) ドラムの絵柄がそろったかの判定を行います。(条件式 if文) m1=m2、m2=m3、m3=m1なら絵柄が全て揃っているということなので、大当たりの判定をします。それ以外の場合は、はずれの判定をします。 最後にcoinが残っているかの判定をします。0枚なら、ゲームオーバーと表示します。 |