Javascript Slot Machine Bug?
Javascript Slot Machine Bug?
我正在编写一种用JS和PHP编写的老虎机。
我在网上找到了一个脚本,其中有3个"项目"。
所以现在我添加了一些,但它只计数的数字,而不是所有的数字定义在卷轴数组?…
我的问题是为什么?下面是我的代码:
<script type="text/javascript">
/*
requestAnimationFrame polyfill
*/
(function(w){
var lastTime = 0,
vendors = ['webkit', /*'moz',*/ 'o', 'ms'];
for (var i = 0; i < vendors.length && !w.requestAnimationFrame; ++i){
w.requestAnimationFrame = w[vendors[i] + 'RequestAnimationFrame'];
w.cancelAnimationFrame = w[vendors[i] + 'CancelAnimationFrame']
|| w[vendors[i] + 'CancelRequestAnimationFrame'];
}
if (!w.requestAnimationFrame)
w.requestAnimationFrame = function(callback, element){
var currTime = +new Date(),
timeToCall = Math.max(0, 16 - (currTime - lastTime)),
id = w.setTimeout(function(){ callback(currTime + timeToCall) }, timeToCall);
lastTime = currTime + timeToCall;
return id;
};
if (!w.cancelAnimationFrame)
w.cancelAnimationFrame = function(id){
clearTimeout(id);
};
})(this);
/*
Slot Machine
*/
var sm = (function(undefined){
var tMax = 3000, // animation time, ms
height = 210,
speeds = [],
r = [],
reels = [
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
],
$reels, $msg,
start;
function init(){
$reels = $('.reel').each(function(i, el){
el.innerHTML = '<div><p>' + reels[i].join('</p><p>') + '</p></div><div><p>' + reels[i].join('</p><p>') + '</p></div>'
});
$msg = $('.msg');
$('button').click(action);
}
function action(){
if (start !== undefined) return;
for (var i = 0; i < 3; ++i) {
speeds[i] = Math.random() + .5;
r[i] = (Math.random() * 3 | 0) * height / 3;
}
$msg.html('Spinning...');
animate();
}
function animate(now){
if (!start) start = now;
var t = now - start || 0;
for (var i = 0; i < 3; ++i)
$reels[i].scrollTop = (speeds[i] / tMax / 2 * (tMax - t) * (tMax - t) + r[i]) % height | 0;
if (t < tMax)
requestAnimationFrame(animate);
else {
start = undefined;
check();
}
}
function check(){
$msg.html(
r[0] === r[1] && r[1] === r[2] ?
'You won! Enjoy your ' + reels[1][ (r[0] / 70 + 1) % 3 | 0 ].split(' ')[0]
:
'Try again'
);
}
return {init: init}
})();
$(sm.init);
</script>
我不知道错误在哪里或者它可能在哪里?
单轮只显示数字1-4,不显示0-9这是必须的。
我疏忽了哪一部分?
如果您想让for循环计数到数组中的最大值,您必须告诉它这样做。目前你仍然让它在3之前停止,所以它就是这样做的。
相关文章:
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- Socket.io客户端在使用名称空间时忽略端口[Bug?]
- angularjs formly submit bug in safari & IE 11
- Bug修复放弃了Firefox插件Wikilook
- “*[attribute ^="string”是如何/为什么是有效的querySelector?(JS bug
- HTML5 Canvas drawImage ratio bug iOS
- PrependTo() bug
- Backbone.js bug?
- Android的Bug:调试修复JS
- 在NodeJS网站中查找Bug
- SyntaxError: missing ) after argument list in fire bug
- IE11-Only Submit Bug
- jquery IE8 bug 中的 .on 方法
- fadeOut”;被禁用”;通过一行看似温和的CSS(jquery bug?)
- 使用javascript(IE bug?)在文本区域插入新行
- document.body.innerHTML 在 IE 中剥离 JavaScript - bug
- Serviceworker Bug event.respondWith
- JavaScript:将插入符号位置设置为第一段的开头(Opera bug)
- WebView bug - 替换 ContentEditable 中的选定文本
- Javascript Slot Machine Bug?