Я работаю с этим кодом, который я нашел, и пытаюсь понять, как получить имена узлов для моих объектов?
Вот часть кода:
let sprite1 = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: 30, height: 30))
let sprite2 = SKSpriteNode(color: UIColor.greenColor(), size: CGSize(width: 30, height: 30))
let sprite3 = SKSpriteNode(color: UIColor.blueColor(), size: CGSize(width: 30, height: 30))
let sprite4 = SKSpriteNode(color: UIColor.yellowColor(), size: CGSize(width: 30, height: 30))
var selected: [UITouch: SKNode] = [:]
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
selected = [:]
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
selected[touch as UITouch] = nodeAtPoint(location)
println(self.name)
}
}
Чего я пытаюсь добиться, так это заставить println
вернуть имя SKSprintNode
(sprite1, sprite2, sprite3 или sprite4)... Я пробовал несколько вещей, но все, что я получаю, это ´nil´
.
Это возможно?
Добавлено:
Итак, чтобы продолжить, как я могу определить, находится ли прикосновение внутри моих объектов? Вот еще код:
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
for (touch, node) in selected{
if !contains(SKScene, node){
let action = SKAction.moveTo(location, duration: 0.1)
node.runAction(SKAction.repeatAction(action, count: 1))
}
}
}
}
С if !contains(SKScene, node)
(который не работает, не могу проверить на SKScene
) я хочу определить, было ли прикосновение к объекту или снаружи.. Если снаружи (касание - это SKScene), я не хочу ничего делать.
Причина, по которой я хочу сделать это таким образом, а не тестировать имена let
, например sprite1
, заключается в том, что я планирую сделать все SKSpriteNode
программно, поэтому мне не обязательно знать имя узла-объекта.
Какие-либо предложения?
if !contains([self], node)
... Это работает! Но правильно ли это? - person Kjetil   schedule 04.12.2014touchesEnded
вtouchesMoved
, так что теперь блоки (объекты) плавно следуют за прикосновением к экрану :-D - person Kjetil   schedule 04.12.2014