Cocos2d中update与fixedUpdate的区别(四)

关于fixedUpdate:方法的目的

现在,想象一下在小球飞行的位置1到8之间有一个移动的平台:

Cocos2d中update与fixedUpdate的区别(四)

该平台不停地上升和下降.有些时候小球可以不碰到而飘过平台,有些时候小球会和平台发生碰撞:

Cocos2d中update与fixedUpdate的区别(四)

这表示小球的最终所在位置可能是8a或者8b.

不要忘记游戏将冻结1秒钟,并且(update:)代码只能执行2次:在开始和结束的地方!

我们仍然不需要渲染所有的中间位置的球,因为玩家不会看到它们.但是我们怎么知道最终在哪显示球呢?是在位置8a还是8b?

现在fixedUpdate:方法出来拯救鸟!

fixedUpdate:方法将在所有这些中间位置执行,即那些因为掉帧而被跳过的位置.

现在,在位置4我们可以检查小球是否和平台碰撞了以及是否需要修改它的轨道.

当然这将只是非常基本的碰撞检测,因为小球可能在位置4还没有飞到平台并且在位置5以及飞过平台了,但在这个例子中我们假设它会按上图的理论轨迹飞行.

上一篇:iOS开发——数据持久化Swift篇&使用Core Data进行数据持久化存储


下一篇:在UWP中页面滑动导航栏置顶