gpt4 book ai didi

ios - 尝试通过按下按钮将 sprite 的 zRotation 增加 1 度时旋转不正确

转载 作者:可可西里 更新时间:2023-11-01 01:19:39 24 4
gpt4 key购买 nike

我有一个简单的矩形 Sprite ,每次按下屏幕上的按钮时,我都想将这个 Sprite 旋转 1 度。我有一些我希望可以工作的简单代码,但它给出了奇怪的结果。不是将矩形旋转 1 度,而是每次点击至少将其旋转 180-270 度。

var degrees = 0

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.location(in: self)
let beam = childNode(withName: "beam") as! SKSpriteNode


if let body = physicsWorld.body(at: touchLocation) {
if body.node!.name == "leftTap" {
print("Began touch on Left")
beam.zRotation = CGFloat(degrees)
degrees = degrees + 1

}else{
print("Began touch on right")
}
}
}

在 GameScene.sks Sprite 属性检查器中,您可以通过按“+”或“-”按钮来增加旋转。我想这会以同样的方式工作,但我一定不了解这里的轮换原则。

如有任何建议,我们将不胜感激。

最佳答案

不是度数,是弧度。大约 3 (pi) 的值是一个完整的自旋。

https://developer.apple.com/documentation/spritekit/sknode/1483089-zrotation

这是一个方便的扩展,您可以使用:

extension SKNode {
// Usage is node.rotateBy(45) etc:
func rotateBy(_ degree: CGFloat) {
let conversionFactor = CGFloat(0.01745329252)
self.run(.rotate(byAngle: degree * conversionFactor, duration: 0))
}
}

关于ios - 尝试通过按下按钮将 sprite 的 zRotation 增加 1 度时旋转不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44481037/

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