我正在构建一个 yatzy 游戏,我在其中调用 shuffle 函数来决定要显示哪个骰子。
$("#dice" + i).attr('src', 'img/Dice' + yatzyLogic.randomDice() + '.gif');
它很好用,但我想要一个当你掷骰子时的动画,就像这样。但是如果我应用它,我必须重新编写几十个代码,而且我很懒:)。
有没有更简单的方法可以将这种东西应用到我的代码中?喜欢快速显示不同图像的定时器功能?
我正在构建一个 yatzy 游戏,我在其中调用 shuffle 函数来决定要显示哪个骰子。
$("#dice" + i).attr('src', 'img/Dice' + yatzyLogic.randomDice() + '.gif');
它很好用,但我想要一个当你掷骰子时的动画,就像这样。但是如果我应用它,我必须重新编写几十个代码,而且我很懒:)。
有没有更简单的方法可以将这种东西应用到我的代码中?喜欢快速显示不同图像的定时器功能?
http://pannonicaquartet.com/test/ej_010_R.html(404)
<script language="javascript" type="text/javascript">
var spnResultado, imgDado, numero, timerReference, timeoutReference;
function init(){
try{
imgDado = document.getElementById("imgDado");
spnResultado = document.getElementById("spnResultado");
}catch(er){
if(console.log)console.log("Error in init: " + er);
if(spnResultado)spnResultado.innerText = "Error in init: " + er;
}
}
function btnStartOnClick(){
try{
if(!timerReference){
numero = Math.floor(Math.random()*6) + 1;
timerReference = setInterval(timerFunction,13);
var rnd = Math.floor(Math.random()*901)+800;
setTimeout(timeoutFunction,rnd);
spnResultado.innerText = "rnd " + rnd;
}
}catch(er){
if(console.log)console.log("Error in btnStartOnClick: " + er);
spnResultado.innerText = "Error in btnStartOnClick: " + er;
}
}
function timerFunction(){
try{
numero++;
if(numero > 6) numero = 1;
var offsetImagen = -(numero-1) * 80;
imgDado.style.marginLeft = offsetImagen + "px";
}catch(er){
if(console.log)console.log("Error in fnTimer:\n" + er);
}
}
function timeoutFunction(){
try{
clearInterval(timerReference);
timerReference = null;
spnResultado.innerText = "Número: " + numero;
}catch(er){
if(console.log)console.log("Error in fnTimer:\n" + er);
}
}
您可以为每个骰子值创建非循环动画 gif(其最后一帧将是骰子值ofcourse)...
并不是说你真的应该这样做(我实际上是建议你不要这样做),因为这只是一个把戏。
但如果你说你不能/不愿意重新编码/重构你当前的代码,那么我看不到不同的路线。。