2

iキャンバスに をループで表示させようとしていiましたt。私は何が悪いのか理解できませんでした。JavaScript は次のようになります。

window.requestAnimFrame = (function(){
    return  window.requestAnimationFrame       ||  
            window.webkitRequestAnimationFrame ||  
            window.mozRequestAnimationFrame    ||  
            window.oRequestAnimationFrame      ||  
            window.msRequestAnimationFrame     ||  
    function(callback){window.setTimeout(callback, 1000/60)}; 
})(); 

var cvs = document.getElementById("canvasId"),
    c = cvs.getContext("2d"),
    t = 0;

window.onload=function loop(){
    window.requestAnimFrame(loop);
    t++;

    for(i=0;i<10;i++){
        c.clearRect(0,0,cvs.width,cvs.height);
        c.font = "bold 90px Arial";
        c.fillText(i + " " + t, 100, 200);
    }
};

http://jsfiddle.net/luxiyalu/9UZU5/

これはミニ ゲームの一部であり、私はここで 2 日間立ち往生しています。何が問題なのか誰か教えてくれたら...どうもありがとう!

4

1 に答える 1

2

描画関数で i を 0 から 9 まで反復しているため、2 つの描画の間に残りの時間はなく、ユーザーは最後の反復値である 9 しか見ることができません。

あなたが本当に達成したいことはわかりませんが、これが必要なようです:

var cvs = document.getElementById("canvasId"),
    c = cvs.getContext("2d"),
    t = 0,
    i = 0;

window.onload = function loop(){
    window.requestAnimFrame(loop);
    i++;
    if (i==10) {
      i = 0;
      t++;
    }

    c.clearRect(0,0,cvs.width,cvs.height);
    c.font = "bold 90px Arial";
    c.fillText(i + " " + t, 100, 200);

};

デモンストレーション

于 2013-02-22T08:09:21.480 に答える