2015-10-03 2 views
2

У меня 2 SKSpritenodes: робот & компьютер робот является ParentNode и компьютер является childNodeИзменить размер childnode в Swift

robot.addChild(computer) 

Теперь я хочу, чтобы изменить размер компьютера, используя только имя родительскогоNode. Мне нужен код: robot.childnode.size.width = xxx Как это сделать?

Причина этого: у меня есть несколько skspritenodes, называемых роботами, и я могу обнаружить их с конфликтом, какой он есть, поэтому мне нужен этот код для доступа к дочернему узлу этого родительскогоNode.

ответ

1

Установить имя для узла computer, когда вы добавляете его в robot.

computer.name = "computer" 
robot.addChild(computer) 

Позже вы можете написать ...

if let computer = robot.childNodeWithName("computer") as? SKSpriteNode { 
    // you can install El Capitain and change the properties of computer here 
} 

... или если вы предпочитаете одну версию строки:

(robot.childNodeWithName("computer") as? SKSpriteNode)?.size.height = 100 

Надеется, что это помогает.

+1

Perfecttttttttt – sdd

+0

И как я могу получить родительский элемент от дочернего номера? childNode.parent.size не работает. – sdd

+0

Я не могу проверить это прямо сейчас, но попробуйте это '(childNode.parent как? SKSpriteNode) ?. size.height = 100' –

Смежные вопросы