如何使用 GameplayKit State Machine 制作精灵动画?

How can I use GameplayKit State Machine for sprite animation?

我有两个动画供玩家 运行 和跳跃。我可以使用 GameplayKit 的状态机来控制这些动画吗?如果是这样,如何?在这个项目中,我将 SpriteKit 和 GameplayKit 用于实体组件架构和状态机。

您需要先设置 StateMachine 并填写您的自定义 类

self.playerStateMachine = GKStateMachine(states: [
    PlayerRunning(player),
    PlayerJumping(player)
])

然后需要进入状态时,可以with:

self.playerStateMachine?.enter(PlayerRunning.self)

您可以在状态上执行以下更改:

override func didEnter(from previousState: GKState?) {
    self.player?.run(runAnimation)
}

示例:

请在此处查看完整示例:https://github.com/Maetschl/SpriteKitExamples/blob/master/StateMachineAnimation/StateMachineAnimation/GameScene.swift