我们常听说 帧同步就是逻辑帧和渲染帧分离,那我们现在就教大家怎样分离。
以下的说明,我们用客户端引擎:cocos2dx 。
一:简单的场景应用
假设在场景上存在 节点 A,当前位置 pos1,目标位置 pos2。
1、客户端单机做法
设定速度,自带update渲染帧进行移动。
即每一帧执行:
pos1 = pos1 + speed
A->SetPosition(pos1)
2、帧同步做法
设定速度,服务器下发帧,这个帧就是逻辑帧
逻辑帧进行计算
pos1 = pos1 + speed
渲染帧进行
A->SetPosition(pos1)
这是非常理想的状态,逻辑帧和渲染帧,帧率差别不大的情况下的表现。那要是帧差比较大,如何处理,这就涉及到补帧,或者直接跳帧。我的做法是将逻辑帧的每一帧计算的pos1 ,用链表串起来。然后渲染帧根据当前的链表,去做适当的取舍。
帧同步连载:概念建立之简单的场景应用
