sprite-kit - 如何使用 GameplayKit 状态机进行精灵动画?
问题描述
我有两个动画供我的玩家奔跑和跳跃。我可以使用 GameplayKit 的状态机控制这些动画吗?如果是这样,怎么做?在这个项目中,我将 SpriteKit 和 GameplayKit 用于实体组件架构和状态机。
解决方案
您需要首先设置 StateMachine 并填写您的自定义类
self.playerStateMachine = GKStateMachine(states: [
PlayerRunning(player),
PlayerJumping(player)
])
然后当你需要进入状态时,可以用:
self.playerStateMachine?.enter(PlayerRunning.self)
在状态上,您可以执行以下更改:
override func didEnter(from previousState: GKState?) {
self.player?.run(runAnimation)
}
例子:
推荐阅读
- javascript - 在沙盒帐户中模拟 PayPal 错误
- c++ - 等待方法中可能出现死锁情况?
- templates - Django REST Framework - 将多个视图渲染到同一个模板中
- python - 如何使用 CANard 库在两个设备之间发送和接收 CAN 消息?
- c# - Xamarin Forms 在网格中调整滚动视图和图像的大小
- sql - 为什么我收到错误 datetime2 与 int 冲突?
- python - 似乎无法弄清楚如何在条件语句中调用已定义的函数
- mysql - MySQL Workbench 数据导出错误。“执行任务时出错 [Errno 2] 没有这样的文件或目录”
- jquery - 试图通过变量在元素上插入类
- php - 将数字向上舍入到数组中最接近的值