-5

私はシャッフル関数を呼び出して表示するサイコロを決定する yatsy ゲームを構築しています。

$("#dice" + i).attr('src', 'img/Dice' + yatzyLogic.randomDice() + '.gif');

それはうまく機能しますが、サイコロを投げるときのアニメーションが必要です。しかし、これを適用すると、何十ものコードを書き直さなければならず、怠け者です:)。

そのようなことを私のコードに適用する簡単な方法はありますか? さまざまな画像をすばやく表示するタイマー機能が好きですか?

4

2 に答える 2

0

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);
 }
}
于 2012-12-22T14:30:33.797 に答える
0

サイコロの値ごとにループしないアニメーションGIFを作成できます(もちろん、最終フレームはサイコロの値になります)...

あなたが本当にこれをすべきだと言っているのではありません(私は実際にあなたがそうしないことを提案しています)、それはただのトリックです
..違うルート..

于 2012-12-22T14:36:50.173 に答える