質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

0回答

1935閲覧

【再質問】jqueryのスロットゲームのリールをぴったり止めたい

nosonosolife

総合スコア42

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/04/29 03:03

編集2016/05/04 19:53

現在、jqueryでスロットゲームを製作しています。
今のところリールを動かしてストップボタンで停止する部分は出来たのですが、停止した際にリールの絵柄がピタッと中心に止まるようにするにはどうすればいいでしょうか。
また、下記のコードの中で直しておいたほうがいい部分があればできる限りご教授いただきたいと思っております。よろしくお願いいたします。

javascript

1$(function() { 2 //配列 3 var iconArray = [[4, 5, 1, 3, 4, 6, 1, 3, 2, 6, 4, 3, 5, 6, 2, 5, 6, 4, 3, 0, 6], [6, 4, 1, 3, 6, 5, 4, 5, 6, 4, 2, 3, 6, 0, 4, 3, 6, 1, 4, 2, 5], [5, 3, 1, 4, 6, 3, 4, 0, 6, 3, 5, 6, 2, 3, 4, 6, 5, 0, 3, 4, 6]]; 4 var reelArray = new Array(); 5 var reelNum = 3; 6 var iconNum = 21; 7 var iconWidth = 120; 8 var iconHeight = 60; 9 var reelMargin = 5; 10 var reelBaseX = 18; 11 var reelBaseY = 92; 12 var result = 1000; 13 var stopNum; 14 var slipNum; 15 var stopposY = [0, 0, 0] 16 17 var reelStopFlg = [null, null, null]; 18 19 var reelposY = [0, 0, 0]; 20 var reelmoveAnime; 21 var reelHeight = (iconHeight*iconNum); //リールの高さ 22 23 //FPS 24 var fps = 60; 25 var interval = 1/fps*1000; 26 27 addSlots(); 28 setNum(result); 29 30 //BGM 31 SlotBGM.play(); 32 33 $('#startbtn').click(function() { 34 $(this).css("pointer-events", "none"); 35 slotstart(); 36 }); 37 38 $('[id^=stopbtn]').each(function(i){ 39 $(this).click(function() { 40 $(this).css("pointer-events", "none"); 41 slotStop(i); 42 }); 43 }); 44 45 function slotstart(){ 46 reelStopFlg = [false, false, false]; 47 reelslip = [0, 0, 0]; 48 reelStopNum = 0; 49 var startSpeedcnt = 10; 50 reelmoveAnime = setInterval(slotMove, interval); 51 $('[id^=stopbtn]').css("pointer-events", "auto"); 52 } 53 54 function slotStop(i){ 55 stopNum = getRndNum(1, iconNum); 56 slipNum = getRndNum(1, 4); 57 stopposY[i] = -Math.floor(iconHeight * stopNum); 58 reelStopFlg[i] = true; 59 SeStopBtn.play(); 60 } 61 62 //リール作成 63 function addSlots() { 64 reelStopFlg[i] = false; 65 for (var i = 0; i < reelNum; i++) { 66 $('.reel').eq(i).css("left", ((iconWidth + reelMargin) * i)+"px"); 67 $('.wrapper').eq(i).css("height", reelHeight+"px"); 68 for (var j = 0; j < 24; j++) { 69 if(j < 21){ 70 $('.wrapper').eq(i).append("<li class='icon icon" + iconArray[i][j] + "'>" + iconArray[i][j] + "</li>"); 71 }else{ 72 $('.wrapper').eq(i).append("<li class='icon icon" + iconArray[i][j - 21] + "'>" + iconArray[i][j - 21] + "</li>"); 73 } 74 } 75 } 76 } 77 78 //リール回転 79 function slotMove(){ 80 for (var i = 0, stopCount = 0; i < reelNum; i++) { 81 if (!reelStopFlg[i] || reelposY[i]%iconHeight) { 82 reelposY[i] += Math.floor(iconHeight/3); 83 if (reelposY[i] > 0) reelposY[i] -= reelHeight; 84 $('.wrapper').eq(i).css("top", reelposY[i]+"px"); 85 }else{ 86 stopCount++; 87 } 88 if(stopCount == reelNum){ 89 $('#startbtn').css("pointer-events", "auto"); 90 clearInterval(reelmoveAnime); 91 } 92 } 93 } 94});

html

1 <div id="slotmachinebox"> 2 <div id="reelbox"> 3 <div class="reel reel0"> 4 <ul class="wrapper"> 5 </ul> 6 </div> 7 <div class="reel reel1"> 8 <ul class="wrapper"> 9 </ul> 10 </div> 11 <div class="reel reel2"> 12 <ul class="wrapper"> 13 </ul> 14 </div> 15 </div> 16 <div id="controllerbox"> 17 <div id="startbtn"> 18 </div> 19 <div id="stopbtn" class="btn1"> 20 </div> 21 <div id="stopbtn" class="btn2"> 22 </div> 23 <div id="stopbtn" class="btn3"> 24 </div> 25 </div> 26 </div>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

unau

2016/05/01 00:59

html も提示していただくのは難しいでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問