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);
}
//上述程序需要注意的是把状态更新和绘制放在两个循环中完成,这是为了防止类似碰撞这样的事件发生造成数据不一致的情况