19、游戏开发:状态机与组件的应用

游戏开发:状态机与组件的应用

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 。为简化操作,使用单个文件来存储玩家状态。若后续添加更多状态或状态代码量增大,可考虑为每个状态创建单
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值