Как получить доступ к объектам подкласса SKSpriteNode при их перемещении (Swift)
Я запутался с объектами моего класса Card, который является подклассом SKSpriteNode. Как получить доступ к этим объектам, когда пользователь их перемещает. Пока что я могу получить доступ только к объектам SKNode, переопределяющим функцию touchesEnded.
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch : UITouch = touches.first as UITouch!
let touchLocation = touch.locationInNode(self)
touchedNode = self.nodeAtPoint(touchLocation)
touchedNode.position = CGPoint(x: size.width * 0.5, y: size.height * 0.5)
touchedNode.zPosition = 0
}
Мне нужно знать, какой объект перемещает пользователь, но в этом случае, когда touchedNode - это объект класса SKNode (не мой класс объектов Card), я не могу понять это.
1 ответ
is
Оператор именно то, что вам нужно.
is
Оператор сравнивает типы двух операндов. Если они одного типа или один является подклассом другого, выражение оценивается как true.
Таким образом, вы можете проверить это так:
if touchedNode is Card {
// do stuff
}
Теперь, что вы могли бы сделать, это если touchedNode
действительно Card
Я хочу использовать методы, которые я определил в Card
класс на touchedNode
,
Для этого вам нужно разыграть touchedObject
в Card
:
let cardNode = touchedNode as! Card
Затем вы можете вызвать ваши методы на cardNode
!