2015-01-16 3 views
1

Im пытается повернуть спрайт, когда я перетаскиваю палец по экрану. Так что я хочу, когда я тяну пальцем влево, спрайт вращается вправо и наоборот, я не могу понять, как это сделать. Может кто-нибудь помочь. Я пробовал использовать функцию «touchhesMoved», но я не уверен, что именно там я должен поместить код, или он должен быть в новой функции или что-то еще.Как повернуть спрайт с помощью перетаскивания

пс. извините, что я очень новичок в spritekit, swift и xcode

ответ

1

Свойство SKSpriteNode.zRotation можно использовать, чтобы повернуть спрайт. И используйте функцию touchesBegan и touchesMoved для отслеживания пройденного расстояния.

var previousPoint : CGPoint! 

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { 

    previousPoint = (touches.anyObject() as UITouch).locationInView(self.view) 
} 

override func touchesMoved(touches: NSSet, withEvent event: UIEvent) { 

    let currentPoint = (touches.anyObject() as UITouch).locationInView(self.view) 

    let distance = currentPoint.x - previousPoint.x 

    previousPoint = currentPoint 

    sprite.zRotation = sprite.zRotation + distance/100.0 

} 
+0

Это. Вы должны отслеживать кумулятивное сопротивление (вместо кадра за кадром), чтобы сделать его стабильным; иначе он будет прыгать дико и выглядеть очень плохо. Кроме того, не забудьте сбросить состояние отслеживания на 'touchesEnded'. –

+0

Спасибо @rakeshsbs, которые сработали – Drewvy22

Смежные вопросы