
10
|
第
1
章
定时器
游戏状态在时钟走过一个固定的周期后就会更新。两次时钟周期之间进行的更
新,间隔时间可能很长(有一些运行在网页上的策略游戏甚至一天才更新一次),
也有可能很短(比如屏幕进行一次绘制就更新一次)。大部分实时游戏,比如
射击游戏和实时战略游戏,则采用非常短的更新周期。
外部输入
影响游戏状态改变的因素也有可能来自游戏外部。比如最常见的因素就是来自
网络传输的数据。类似的情况还包括来自内置传感器,如加速计产生的数据等。
而且,这种状态变更机制实质上仍然是一种特殊的定时器,因为不管网络还是
传感器都是以轮询的方式,每隔一段时间就去检查一下是否有新数据到达。
讨论
这些方法并不是互斥的。例如,你可以用一个定时器刷新游戏画面,但同时游戏状
态也会因用户的输入而改变。
逐帧刷新是效率最低的做法,但它对状态的修改也是最为频繁的,这种方式能使游
戏状态的改变更加平滑。
1.2
创建基于继承的设计
问题
有时候我们需要创建一种基于继承机制(如基于树形层次结构)的游戏框架,这种
框架的实现相对起来要简单一些。
解决方案
首先,定义一个类
GameObject
:
class GameObject {
func update(deltaTime : Float) {