Я хочу перемещать SKSpriteNode по экрану с прикосновением. Проблема в том, что если я закрою один спрайт, а затем мой палец перетащит его поверх другого спрайта, первый отпустит, а мой палец начнет перетаскивать второй. Но как только я касаюсь первого спрайта, это единственный, который я хочу переместить. Должен быть простой способ разрешить это?Перемещение SKSpriteNode через экран
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
let touch: UITouch = touches.first as UITouch!
touchLocation = touch.locationInNode(self)
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch: UITouch = touches.first as UITouch!
let newTouchLocation = touch.locationInNode(self)
let targetNode = self.nodeAtPoint(touchLocation)
if targetNode.physicsBody!.categoryBitMask != PhysicsCategory.Ball {
targetNode.runAction(SKAction.moveBy(CGVector(point: newTouchLocation - touchLocation), duration: 0.0))
touchLocation = newTouchLocation
}
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
//I don't do anything with this yet
}
Это не работает - «Невозможно преобразовать значение типа« UITouch »в ожидаемый тип аргумента« CGPoint »» – Pete