读书人

Torque X 官方文档汉语译稿(4)时钟

发布时间: 2012-12-21 12:03:49 作者: rapoo

Torque X 官方文档中文译稿(4)——时钟周期和处理

时钟周期和处理

void ProcessList(Move move, float dt)

??

时间(即第二个参数dt)的单位是秒。通常来说,所有的动作和大多数游戏逻辑都应该在处理列表调用中完成。

?

InterpolateTick

Torque X支持常量和变量更新两种方式。当使用常量更新时,我们可以在不同机器间得到更加一致的行为(例如一个更新的线程每秒被调用100次和当它每秒只被调用50次肯定是不一样的)。这样带来的一个后果就是,如果一帧画面需要在两个时钟周期内完成,那么我们就必须能够重新定位游戏中的所有对象,然后在两个时钟周期之间做插值运算和后续处理。这个工作是通过InterpolateTick回调函数实现的。当这个函数被回调时,对象(或者组件)负责在前两个时钟周期间进行插值(1代表最近的时钟周期,0代表上一个时钟周期)。大多数时候,你使用stock组件来对位置、旋转等进行插值计算,所以在这里你不需要做任何事情。但是,如何你注册了一个时钟周期回调函数,你就需要实现插值回调函数,因为InterpolateTick是ItickObject接口的一部分。

?

UpdateAnimation

有一件事情是确定的:游戏对象绝对不需要关心常量时钟周期。动画就是最好的例子。如果每一个时钟周期都要追踪动画的状态并且在渲染时计算出插值的位置,就太繁琐了。取而代之的是,我们通过UpdateAnimation回调函数来更新动画。在上一次渲染和下一次渲染之间,这个回调函数将被调用。注册一个UpdateAnimation回调函数非常简单,仅仅在处理列表中调用AddAnimation回调函数就可以了。像其他的周期回调函数一样,你可以提供一个可选的第三参数来指定调用的次序。

读书人网 >编程

热点推荐