Javascript 如何以不同速度同时运行动画

Javascript 如何以不同速度同时运行动画,javascript,animation,canvas,simultaneous,Javascript,Animation,Canvas,Simultaneous,这段代码现在可以完成这项工作。动画都在函数调用中 函数animate(){ requestAnimationFrame(动画); 对于(var i=0;i

这段代码现在可以完成这项工作。动画都在函数调用中

函数animate(){

requestAnimationFrame(动画);
对于(var i=0;i
从一个requestAnimationFrame开始(因为它在动画循环中非常有效)

我假设你已经为你的飞船和导弹创建了对象

向每个对象添加一个
delay
countdown
元素

objects.push({id:"ship",x:20,y:20,vx:1,vy:0,delay:20,countdown:20,color:"green"});

objects.push({id:"missle",x:220,y:20,vx:-1,vy:0,delay:3,countdown:3,color:"red"});
然后在requestAnimationFrame中,可以减少每个对象的倒计时

如果倒计时为零,则绘制该对象

for(var i=0;i<objects.length;i++){
    var object=objects[i];

    // if this object's countdown has expired, move it
    if(--object.countdown<=0){

        // reset the countdown

        object.countdown=object.delay;

        // move the object

        object.x+=object.vx;
        object.y+=object.vy;
    }
}

for(var i=0;iWaw-一个奇妙的答案-希望我能使用此方法。我已将船舶实例设置为数组元素-1=船舶存在,0=无船舶(爆炸!)。然后通过引用数组并增加x/y画布点来绘制船舶。玩家将发射导弹(按键或鼠标点击)所以导弹动画的开始/结束是随机的。我不知道如何将这种方法结合起来。。。。。。
for(var i=0;i<objects.length;i++){
    var object=objects[i];

    // if this object's countdown has expired, move it
    if(--object.countdown<=0){

        // reset the countdown

        object.countdown=object.delay;

        // move the object

        object.x+=object.vx;
        object.y+=object.vy;
    }
}