【发布时间】:2016-12-30 00:21:39
【问题描述】:
背景
我创建了一个 SpriteKit 应用程序,用于为锦标赛创建排行榜。我试图通过使用GKStateMachine 来删除一些用于处理状态的丑陋代码,从而使代码更加健壮。我也只是想试验状态机,以便学习如何在未来的项目中使用这个框架。对于我见过的所有示例(并且数量不多),它们都有非常简单的状态机图。我的稍微复杂一些。我只是想确保以预期的方式使用这些 API。
问题:在我看到的示例中,- didEnterWithPreviousState: 中从来没有任何 if 语句,这意味着我猜它假定只有一种方法可以到达每个状态。您会使用- didEnterWithPreviousState: 中的 if 语句来决定如何处理可能进入状态的多种方式吗?
项目信息
在我设置排行榜的场景中,我选择contestant 图标并将它们放入排行榜。如果参赛人数不是 2 的幂,则需要先选择“再见”。
一旦选择了所有“再见”位置,排行榜就会动态地为必须在第 1 轮中面对面的参赛者创建位置。
一旦第一轮的所有参赛者都被选中,那么将寻求确认选择,然后从设置场景移动到排行榜场景。
这是我目前的状态(但这没有使用GKStateMachine。
【问题讨论】:
标签: objective-c macos sprite-kit