cocos2dx如何稳定的定时调度—跑酷游戏

如果用CCScheduler定时器来做跑酷游戏,游戏会受到帧率不稳定的影响而有卡顿现象,请问有什么方案解决?

另起分线程也是不行的,cocos2dx线程不安全

根据刷新间隔时间调整移动距离,就是保持速度一样,根据不同的帧间隔时间调整移动的距离

如果帧时间间隔大,则移动距离也相应变大,这样做确实可以让其移动的距离是准确的,但前一帧精灵在A位置,让后卡一下,下一帧在很远的B位置,在客户的眼中很容易看到瞬移的现象,也就是卡顿

把移动距离和schedule传进来的dt关联起来。

那肯定的,主要是怎么能做到dt稳定,dt忽大忽小肯定出现卡顿,但schedule得dt就是不稳定的,所以可能得另外实现一个定时回调机制,机制中dt稳定,不知各位大牛有没有什么方案?

稳定机制这样?
local maxDalta = 1/60
local xx = {
counter = 0
}
function xx:update(dt)
counter = counter + dt

while a > maxDalta  do 
    self:updateLogic(maxDalta)
    counter = counter - maxDalta
end

end

function xx:updateLogic(dt)
–更新逻辑
end

但是,要卡的话,主要是dt太大的情况下导致的。就算dt用稳定大小更新,也不会不卡
因为android里,cocos2d的所在的线程就是gl线程,如果cpu开销大,绘制就会跟不上,卡顿是必然的,
你没法硬性让引擎给你一个定时回调,因为没有意义

timer时间间隔时间长一点 会稳定一些。 你老抢cpu肯定不稳定啊