zRotation 与运动不协调
zRotation is not coordinated with movement
我正在尝试使用 SpriteKit 为 iPhone 制作 iPod Classic 游戏 Vortex(https://www.youtube.com/watch?v=LPN-vdeEsiE) 的一个版本。我有这个代码,所以平台围绕中心运行:
let dx = base!.position.x - self.frame.width/2
let dy = base!.position.y - self.frame.height/2
let rad = atan2(dy, dx)
path = UIBezierPath(arcCenter: circle!.position, radius: (circle?.position.y)! - 191.39840698242188, startAngle: rad, endAngle: rad + CGFloat(M_PI * 4), clockwise: true)
let follow = SKAction.followPath(path.CGPath, asOffset: false, orientToPath: true, speed: 200)
base?.runAction(SKAction.repeatActionForever(follow))
但问题是节点的 zPosition 是指向路径的,而不是像你看到的那样指向中心 here。
它应该以这个方向旋转:
请有人帮我解决这个问题,我将不胜感激。谢谢
在我看来你的飞船旋转角度偏离了 90 度。似乎最简单的解决方案就是将源图像旋转 90 度。这样一来,您根本不需要更改代码。
我正在尝试使用 SpriteKit 为 iPhone 制作 iPod Classic 游戏 Vortex(https://www.youtube.com/watch?v=LPN-vdeEsiE) 的一个版本。我有这个代码,所以平台围绕中心运行:
let dx = base!.position.x - self.frame.width/2
let dy = base!.position.y - self.frame.height/2
let rad = atan2(dy, dx)
path = UIBezierPath(arcCenter: circle!.position, radius: (circle?.position.y)! - 191.39840698242188, startAngle: rad, endAngle: rad + CGFloat(M_PI * 4), clockwise: true)
let follow = SKAction.followPath(path.CGPath, asOffset: false, orientToPath: true, speed: 200)
base?.runAction(SKAction.repeatActionForever(follow))
但问题是节点的 zPosition 是指向路径的,而不是像你看到的那样指向中心 here。
它应该以这个方向旋转:
请有人帮我解决这个问题,我将不胜感激。谢谢
在我看来你的飞船旋转角度偏离了 90 度。似乎最简单的解决方案就是将源图像旋转 90 度。这样一来,您根本不需要更改代码。