我正在使用 CreateJS 编写游戏并使用 CocoonJS 进行分发。CocoonJS API 中有几个监听器函数,允许在游戏暂停和恢复时进行回调。游戏的计时器和(基于时间的)动画由 Ticker 事件的“delta”属性驱动。我目前遇到的问题是,在暂停之后恢复游戏时,计时器将从暂停的时间加上暂停时花费的时间开始计时。例如,我在 20 秒后暂停游戏正好 4 秒,在恢复游戏时,计时器将从 24 秒开始(不是 20 秒,这是预期的)。我尝试在暂停之前存储ticker事件的“runTime”属性,然后尝试将ticker事件的“runTime”设置为恢复时存储的值,
我的原始代码片段(修补之前)如下所示:
createjs.Ticker.setFPS(60);
createjs.Ticker.on("tick", onTick, this);
Cocoon.App.on("activated", function() {
console.log("---[[[[[ APP RESUMING ]]]]]---");
createjs.Ticker.paused = false;
});
Cocoon.App.on("suspending", function() {
console.log("---[[[[[ APP PAUSING ]]]]]---");
createjs.Ticker.paused = true;
});
onTick = function (e) {
if (!e.paused) {
animateUsingTicker(e.deltaTime);
countDownTimerUsingTicker(e.deltaTime);
//etc...
stage.update();
}
};
有人可以帮助我吗?
非常感谢