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

Posted

技术标签:

【中文标题】如何找到 SKSpriteNode 的速度作为 x 和 y 值?【英文标题】:How can I find an SKSpriteNode's velocity as x and y values? 【发布时间】:2015-02-17 15:18:51 【问题描述】:

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

【问题讨论】:

速度是 SKPhysicsBody 的一个属性:var velocity : CGVector = sprite.physicsBody!.velocity 【参考方案1】:

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

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

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

【讨论】:

以上是关于如何找到 SKSpriteNode 的速度作为 x 和 y 值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SpriteKit 中的不同设备上使 SKSpriteNode 的速度相同?

如何加入两个碰撞的 SKSpriteNode

如何找到skspritenode的中点

需要帮助更改在 didMoveToView 中调用的 SKSpriteNode 的速度、方向和生成时间

找到旋转的 SKSpriteNode 的精确帧

如何将SKSpriteNode作为PNG图像保存到相机胶卷?