即時通訊工作在一個遊戲上,我現在有一個問題,在追蹤一個路徑時,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