
游戏的设计
|
25
解决方案
通过一个
Bool
变量来保存游戏的“暂停”状态。然后,将游戏对象分成两种类别,
一类在暂停的时候继续运行,另一类在暂停的时候停止运行:
for gameObject in gameObjects {
//
如果游戏不在“暂停”状态,而且这个游戏对象不支持暂停,
//
则该对象继续刷新
if paused == false || gameObject.canPause == false {
gameObject.update(deltaTime: deltaTime)
}
}
讨论
暂停游戏的最简单办法,是用一个变量记录游戏的暂停状态;当游戏刷新时,检查
这个变量的值,为
true
的时候我们停止任何游戏对象的刷新。
当然,我们并不想让游戏中的每一样东西都被“冻”住。例如这些:
•
用户界面仍然要能够继续工作。
•
网络需要继续和其他计算机保持连接而不是完全断开。
这时,最好让某些对象永远不会被暂停。
1.10
记录游戏时间
问题
记录游戏从启动以来,总共用去了多少时间。
解决方案
在游戏启动时,创建一个
Date
对象并将它保存起来:
//
声明一个属性,用于游戏启动时记录启动时间
var gameStartDate : Date?