我有一个使用requestAnimationFrame()的animate()循环的“简单”游戏:
function animate(currentTime) {
if(playGame) {
requestAnimationFrame( animate );
}
if(isCollide) {
endTime = currentTime + 5000;
drawCollision(currentTime);
}
}
我想运行drawCollision()代码5秒钟,所以我做了类似的事情:
function drawCollision(currentTime) {
if(playCollide) {
requestAnimationFrame( drawCollision );
}
if(currentTime < endTime) {
drawImage(image, x, y, height, width, rotation);
} else {
playCollide = false;
}
}
但是,两个rAF呼叫似乎同时运行?或者至少调用drawCollision()之后的代码在执行drawCollision时执行。
答案 0 :(得分:0)
好吧,似乎已经让它工作了,不得不在调用我的cancelAnimationFrame(animate)
代码之前调用drawCollision()
- 还将我的'游戏结束'代码移动到其他内部,用于drawCollision中的if循环。
cancelAnimationFrame
polyFill包含在rAF中:
http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/