var sprites = [];
var context = ...;

function animate(time){
    var i;
    context.clearRect();
    drawBg();
    for(i=0; i<sprites.length; ++i){
        sprites.update(context, time);    
    }  
    for(i=0; i<sprites.length; ++i){
        sprites.paint(context);    
    }  
    window.requestNextAnimationFrame(animate);
}
//上述程序需要注意的是把状态更新和绘制放在两个循环中完成,这是为了防止类似碰撞这样的事件发生造成数据不一致的情况