gpt4 book ai didi

Swift:计算将 SKSpriteNode 旋转多少以使其指向 CGPoint

转载 作者:搜寻专家 更新时间:2023-11-01 06:34:38 24 4
gpt4 key购买 nike

我正在 Playgrounds 中制作一个基于射击太空岩石的 SpriteKit 游戏。在游戏中,有一把枪,它是一个 SKSpriteNode,我希望它转向我传递给函数(CGPoint)的点。我想知道的是如何计算将枪转向给定点的多少?提前致谢!

最佳答案

很久以前,经过大量的头脑调整数学和一个不眠之夜,我想出了这个函数:

func gunAngle(gunPosition: CGPoint, targetPosition: CGPoint) -> CGFloat {
let deltaX = Float(targetPosition.x - gunPosition.x)
let deltaY = Float(targetPosition.y - gunPosition.y)
let pi = CGFloat(M_PI)
let angle = CGFloat(atan2f(deltaY, deltaX))
var newAngle = angle

if angle < (-pi / 2) {
newAngle += 2 * pi
}
return newAngle - pi/2 // Subtracting 90 degrees out of the resulting angle, as in SpriteKit 0 degrees faces left, unless you rotate your gun in the sprite accordingly
}

我意识到这可能不是最好的方法,但它对我有用。一些数学大师可能会在这里想出一些非常棒的东西。我还不是其中任何一个。

感谢 Ray Wenderlich,在他的网站上有一个关于该主题的教程,对我奠定该数学基础有很大帮助。

关于Swift:计算将 SKSpriteNode 旋转多少以使其指向 CGPoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42893920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com