我正在嘗試執行overriden touchesMoved func以使SKSpriteNodes能夠被用戶移動。但是,我必須非常緩慢地移動節點,以便在拖動時跟隨觸摸點。此外,背景中有三個SKSpriteNode(您將看到我明確設置爲.userInteractionEnabled = false),並且這些節點偶爾會響應觸摸。任何幫助將不勝感激。讓我知道你是否還有其他需要的代碼。touchesMoved無法正常工作
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
var positionInScene = CGPoint(x: 375.0, y: 400.0) //sets a default position
titleLabel.userInteractionEnabled = false
drawingBoard.userInteractionEnabled = false
sideBar.userInteractionEnabled = false
for touch in touches {
positionInScene = touch.locationInNode(self)
if self.nodeAtPoint(positionInScene) is SKSpriteNode {
if (self.nodeAtPoint(positionInScene)).name == movableNodeName { //movableNodeName is the name assigned to all SKSpriteNodes that should be draggable
//I know this might be a strange way of doing it
(self.nodeAtPoint(touch.previousLocationInNode(self))).position = positionInScene
}
}
}
}