swift - 如何找到 SKSpriteNode 的速度作为 x 和 y 值?

标签 swift sprite-kit skspritenode

我正在开发一款平台游戏,并试图找到用户控制角色在 x 和 y 值中的速度。目的是检测玩家是否在坠落、跳跃、奔跑或站立。例如,如果玩家离开壁架,我希望能够检测到他的 y 值的变化以确定他是在下落还是在跳跃并显示正确的纹理。 (我意识到我可以根据是否给出跳跃命令来检测跳跃,并且我可以检测他是否离开基于“didEndContact”的平台,但是如果我可以根据他们移动的方向。)希望我解释了我正在努力做的足够好。如果我需要更好地解释或者是否有更好的方法来完成我正在尝试做的事情,请告诉我。谢谢!

最佳答案

您可以使用属性 velocity来自节点的 SKPhysicsBody

这个向量存储了 body 的当前速度。

然后您可以使用 velocity.dxvelocity.dy 访问 xy 值. (例如在您的 update() 方法中)。

关于swift - 如何找到 SKSpriteNode 的速度作为 x 和 y 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28564757/

相关文章:

iOS - 如何在 AppsFlyer 的 One-Link 中获取参数。应用已安装并启动

ios - 如何在 Swift 中组合 2 个 CoreData 谓词?

ios - 加速度计失灵了

swift - 如何在每次触摸SKNode时加1点

ios - 暂停 SpriteKit 游戏 - UIApplicationWillResignActive 与 UIApplicationDidBecomeActive?

ios - SKNode 现在显示在另一个类中

ios - Swift/SpriteKit - 球节点向下释放角度

swift - 为什么我的 SKSpriteNode 可以工作,但只是暂时的

ios - Sprite kit 可以访问 iOS 9.2 中的子节点

arrays - 如何检查 `Any` 类型的对象是一个实现某些协议(protocol)的具体类的数组