使用GKStates和PhysicsBody操作的最佳实践

时间:2018-07-16 11:21:25

标签: swift state-machine skphysicsbody gameplay-kit

我正在使用基于实体组件框架构建的GameplayKit并利用GKStates开发游戏。

我想知道以下最佳做法是什么:

我有一个名为Person的游戏实体。这个人在做自己的生意时徘徊在现场。他们在WANDER GKState中。如果碰到另一个人,他们就会开始聊天或打架...

我的问题是,应该将接触物理代码放在哪里?应该在Person的OnContactBegin方法中还是应将其放置在WANDER GKState中,以继承支持OnContact方法的物理组件?

这两种方法都可行,但是最干净或首选的方法是什么?当前,代码全部在Person实体中,但是随着更多行为的添加,OnContact方法变得越来越大且不规则,我开始认为我应该将代码放在各种GKState中。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

实际上GKStateMachine是经典的Finite-state machine。因此,最好的方法是通过外部事件将状态机切换到适当的状态。