首页 > 解决方案 > 如何使用 GameplayKit 状态机进行精灵动画?

问题描述

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

标签: sprite-kitgameplay-kit

解决方案


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

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

然后当你需要进入状态时,可以用:

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


推荐阅读