游戏开发:状态机与组件的应用
1. 状态与状态机简介
在游戏开发中,除了常规的代码实现方式,还可以使用状态和状态机。借助状态和状态机,能够在游戏里定义不同的状态,例如游戏是否正在进行。同时,可以设置并利用状态机来处理不同状态之间的转换,这样就能更精准地控制进入和退出不同状态时的情况,还能明确游戏处于不同状态时会发生什么。
在 GameplayKit 里,可使用 GKState 和 GKStateMachine 超类来创建和管理游戏状态。以 Val’s Revenge 为例,会创建一个玩家状态机,用于追踪玩家的库存中是否有钥匙,并依据此信息判断 Val 能否打开阻碍她获取财富与荣耀的地牢门。
2. 创建玩家状态
2.1 准备工作
- 打开 Xcode 中的 valsrevenge 项目。可以继续使用上一个项目,也能采用本章代码资源中
projects/begin文件夹里的起始项目。本章还有一个包含所有代码和资源的结束项目,位于projects/end文件夹。 - 在项目导航器中,选中 valsrevenge 组,创建一个新组(EDN),命名为 States,并将其移动到 Entities 组上方。
- 在新创建的 States 组内,使用 iOS Swift File 模板创建一个新文件,命名为
PlayerStates.swift。为简化操作,使用单个文件来存储玩家状态。若后续添加更多状态或状态代码量增大,可考虑为每个状态创建单
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



