关于这个问题cocos2d中的fixedUpdate:(或者是Unity中的FixedUpdate)在不同论坛中出现略显频繁.它被回答过很多次了,不管如何,每次一些童鞋在得到答案后还是有一些问题.
该问题典型的答案是:
update:在每一帧调用一次,而fixedUpdate:保持一个恒定的调用率.
我将会就Cocos2d-Swift(ex. Cocos2d-iPhone)中的update和fixedUpdate做一些解答,但是同样这些也适用于Unity中的Update和FixedUpdate方法.
但这是神马意思呢?而且更重要的是,在Cocos2D中什么时候用update,什么时候用fixedUpdate呢?
游戏就像一系列的帧一样
在理解你应该在哪里写代码之前,让我们把问题说的再明显点:为什么我们从根本上需要写这些代码?
听起来想一个疯狂地问题!当然我们写这些代码去移动游戏对象,更新标签,计算碰撞点以及找寻路径等等.但是执行这些大多数代码的结果是啥呢?
结果是将在屏幕看到神马!看到当前的帧!
无论你创建什么类型的游戏,在你的代码中有多少抽象层或者你使用什么模式.最后你的游戏只是简单的在玩家的设备上一帧一帧显示帧.
当然我们取得玩家的输入,模拟物理对象以及玩家不会看到的其他事情.但是最终只有一个东西有意义,就是玩家看到屏幕显示的东西.这就是玩家对于游戏的视角.
现在让我们回到我们的update方法的讨论中去.