0

俳優の 4 つの画像をアニメーション化しようとしていますが、表示されているのは 1 つの画像だけで、他に変化はありません。

function init()
{
i=0;
while(i<ActStandX.length) //ActStandX holds the x locations of actor in a image spritesheet
{
    for(var currentFrame=0;currentFrame<10;currentFrame++)
    {
       ctxBg.clearRect(0,0,800,600); //ctxBg is 2d context  of canvas
       ctxBg.drawImage(img,ActStandX[i],10,actWidth,actHeight,200,300,60,110);
            }
    i++;
}
requestAnimFrame(init); 
}

私はこれまでこのコードを試しましたが、成功しませんでした。

4

1 に答える 1

0

これを試して:

var i = 0;

function init()
{
    ctxBg.clearRect(0,0,800,600);
    ctxBg.drawImage(img,ActStandX[i++],10,actWidth,actHeight,200,300,60,110);

    if (i == ActStandX.length) i = 0; // loop the animation

    requestAnimFrame(init); 
}

ペイントするたびにフレームが変更されるため、実際に必要な速度よりも速くなる可能性があることに注意してください。i経過時間に基づいての増分を制限することは難しくありません。きっと理解できるはずです。:)

于 2012-10-08T19:00:44.117 に答える