即时通讯工作在一个游戏上,我现在有一个问题,在追踪一个路径时,SpriteNode的zRotation。Swift SpriteKit - 在SKAction中的zRotation按照路径
所以我有一个ShapeNode它看起来像这样:使用这种形状的UIBezierPath
林。
现在我有一个SpriteNode,它开始于这条路径的中间,并随机从左向右移动,否则。
对于此我有2个功能:
func FischRechtsBewegen(){ //for moving right
FischNode1.removeAllActions()
let BewegeRechts = SKAction.follow(FischKurveRechts.cgPath, asOffset: false, orientToPath: true, duration: 6)
FischNode1.run(BewegeRechts)
}
func FischLinksBewegen(){ //for moving left
FischNode1.removeAllActions()
let BewegeLinks = SKAction.follow(FischKurveLinks.cgPath, asOffset: false, orientToPath: true, duration: 6)
FischNode1.run(BewegeLinks)
}
此外,在该功能IM计算所述方向为SpriteNode一个新的路径的每一个变化。 (但是因为这段代码对于我的问题并不重要,所以我在示例代码中删除了它)
这条新路径(对于SKAction)从SpriteNode的实际位置开始,然后向右(如果新运动是正确的)还是向左(如果新的运动是离开的)带有到旧开始/终点的曲线。
我现在的问题是: 当向左移动SpritesNodes zRotation正是我想要它。节点“看起来”到屏幕的顶部。当向右移动时,SpriteNodes zRotation不好 - 现在节点指向非常难看的屏幕底部。
我试过不同的东西 - 我已经改变了我用于SpriteNode(旋转那里)的图像。我试图用动作改变SpriteNode的zRotation。没什么帮助。当然,因为在我的SKAction中我说“orientToPath = true”。我现在问...有没有一种简单的方法让SpriteNode总是“看”到屏幕的顶部,还是我必须在update()函数中手动更改zRotation?
我问,因为SKAction.follow(orientToPath)中有这个属性,我问自己我是否可以在这种情况下使用它,但是如果有一种方法可以改变它只是为了我的需要。或者如果这是不可能的 - 如果路径向左走,为什么orientToPath不同于正在向右走的路径中的orientToPath?
这是我的问题的视频,也许它更容易看到我的意思。 https://youtu.be/vLH5nUlE91U
你试过设置'sprite.yScale = -1'和/或'sprite.xScale = -1'吗? – 0x141E
它的工作.. omg - 很容易..谢谢你的帮助! – aignetti