1
我在這裏要做的是在其錨點周圍旋轉SKSpriteNode,並使其速度和方向與平移手勢相匹配。因此,如果我的平移手勢是圍繞精靈順時針旋轉,那麼精靈順時針旋轉。如何根據平移手勢速度將角衝量應用於Sprite Kit節點
我的代碼存在的問題是,它對於從左到右/從右到左的精靈下面的平鋪很有用,但是當我嘗試垂直平移時它並不會完全平移,並且它會使精靈旋轉錯誤我在精靈之上平移。
這裏就是我這麼遠 -
let windmill = SKSpriteNode(imageNamed: "Windmill")
override func didMoveToView(view: SKView) {
/* Setup gesture recognizers */
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: "handlePanGesture:")
self.view?.addGestureRecognizer(panGestureRecognizer)
windmill.physicsBody = SKPhysicsBody(circleOfRadius: windmill.size.width)
windmill.physicsBody?.affectedByGravity = false
windmill.name = "Windmill"
windmill.position = CGPoint(x: self.frame.size.width/2, y: self.frame.size.height/2)
self.addChild(windmill)
}
func handlePanGesture(recognizer: UIPanGestureRecognizer) {
if (recognizer.state == UIGestureRecognizerState.Changed)
{
pinwheel.physicsBody?.applyAngularImpulse(recognizer.velocityInView(self.view).x)
}
}
我知道這是不是與垂直盤在旋轉,所以我想我需要這些莫名其妙地結合起來,我只得到x值的原因。
我也嘗試過使用applyImpulse:atPoint:,但這會導致整個精靈被掃除。