У меня есть SKScene с 1 пустым узлом (buttonsGroup). В моем классе GameView я создаю узел (ball1), который является его родителем пустого узла.
buttonsGroup = childNodeWithName("ball1")
var ball1 = SKSpriteNode(imageNamed: "ball")
ball1.name == "ball1"
buttonsGroup.addChild(ball1)
Моя проблема возникает, когда я пытаюсь переместить узел с помощью TouchesBegan:
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
for touch in (touches as! Set<UITouch>) {
let location = touch.locationInNode(self)
let touchNode = nodeAtPoint(location)
if touchNode.name != "ground" {
touchNode.position = location
}
}
}
Я уже знаю, что если вы используете SKScene и местоположение touchNode, они вернут разные значения (по крайней мере, так кажется). В этом случае узел просто прыгает в никуда. Размер моей SKScene 480x320.
Кто-нибудь знает решение? Если я делаю вручную (без SKScene), все работает без проблем. У меня уже была эта проблема несколько раз, когда я пытался использовать действие moveBy или любое другое действие, требующее моей позиции в представлении.