イヌでもわかるJavaScript講座
|
Step.52 - スロットマシン風おみくじ
|
スロットマシン風の「おみくじ」を作ってみます。全部揃って、はじめて有効という変なルールです。(^^; |
Step テーマ ● 過去Step の おさらい |
実行例 |
リスト<script type="text/javascript"><!--
<table border="1"> <tr> <td><img src="kuji0.gif" name="myFormImg1"></td> <td><img src="kuji0.gif" name="myFormImg2"></td> <td><img src="kuji0.gif" name="myFormImg3"></td> </tr> <tr> <td><form><input type="button" value="STOP" onclick="myStop1()"></form></td> <td><form><input type="button" value="STOP" onclick="myStop2()"></form></td> <td><form><input type="button" value="STOP" onclick="myStop3()"></form></td> </tr> <tr> <td align="center" colspan="3"> <form><input type="button" value="START" onclick="myStart()"></form> </td> </tr> </table> |
サンプルだけの HTMLは こちらへ |
説明前回、ボタンを押して画像を変えるというサンプルを作りました。 これは、視点を変えると、画像が変わっているのをボタンを押して止めるとなります。 これはスロットマシンですね。ちょっと作ってみましょう。
相変わらず、大吉、吉、凶の3つのファイルを使います。(^^;
今回は高速で画像を表示するので、あらかじめそれぞれの画像イメージをメモリに読み込んでおきます。
myStartFlg は、STARTボタンを押したかどうかのチェックをします。0であれば押していない、1であれば押したという感じです。 myStopFlg1〜3 は、それぞれのストップボタンのチェックをします。-1であれば、そのスロットが回転している状態、それ以外はストップしていて、そのときの画像データの配列番号をセットします。本当のスロットマシンを作ろうとした場合は、この myStopFlg1〜3 がすべて同じ数字なら揃ったということです。 今回は、揃ったかどうかの処理は入れていません。(^^;
スタートボタンが押されたときに呼ばれる関数です。 if (myStartFlg == 0){ は、スタートした後に、再び STARTボタンを押したときは 無効にするための if 文です。 myStopFlg1〜3 にそれぞれ -1 をセットして、回転させます。 回転のメインルーチン myLoop() を呼びます。
if (myStopFlg1==-1||myStopFlg2==-1||myStopFlg3==-1){ は、3つのスロットの1つでも回転していれば有効ということです。 すべてが -1 以外ということは、全部 STOP がかかったということなので、回転ループ処理(myLoop) が終了となります。 ということは、再び STARTボタンを有効にしないといけないので、 myStartFlg = 0; としています。 本格的なスロットマシーンを作る場合は、この後に、絵が全部揃ったかのチェックをして、コイン枚数を加算するなどの処理をいれます。 まだ、STOPボタンが押されていないスロットがあれば、乱数で画像を変えて、setTimeout()で、ぐるぐるとループします。
● 参考ステップ
Step.6 日付表示はありきたり? だったら表現を変えてみましょう ※Math.floorStep.14 九九の問題に答えてみましょう ※Math.random Step.28 オープニングロゴを作ってみましょう ※setTimeout Step.50 アクセス毎に画像を変えてみましょう Step.51 ボタンが押されたら画像を変えてみましょう ● リファレンス
|
Q&A 1[Q] 3つそろったらalert表示させたいのですが・・・ [A] myStartFlg = 0; // 全部止まった の次の行に if (myStopFlg1 == myStopFlg2 && myStopFlg2 == myStopFlg3) { alert("大当たり〜〜"); } を入れればOK。 |
Q&A 2Q: スロットを3つじゃなく、1つでやりたいのですが。
A: 1つバージョンを作りました。
|
実行例 |
リスト<script type="text/javascript"><!--
// --></script>
<IMG src="kuji0.gif" width="50" height="100" name="myImgQA2">
<FORM name="myFormQA2"><INPUT type="button" value="START" name="myFormButtonQA2" onclick="myStartQA2()"></FORM>
|