Не могу получить доступ к CCNode как дочернему элементу сцены

Я очень новичок в spriteBuilder и cocos2d, что означает, что я вполне уверен, что делаю что-то не так... Я просто не знаю что.

Я добавил CCNode в "сцену уровня", которую я загружаю как дочернюю сцену в свою "сцену игры", но я не могу понять, как ссылаться на CCNode, который находится в сцене уровня.

Вроде как это:

Сцена игрового процесса (CCScene) Сцена уровня 1 (CCScene) Цель (CCNode)

И тогда в моем коде я делаю:

gameplay = [CCBReader loadAsScene:@"Levels/Level1"];

И затем я хочу получить позицию моей цели, которую я поместил внутри уровня. Как бы я это сделал? У него есть "doc root var", но я могу получить к нему доступ только внутри пользовательского "target"-класса. Как мне получить доступ к этому в игровом процессе? Этот фрагмент кода дает мне {0, 0} при запуске из игрового процесса, но {393, 193} при запуске внутри целевого класса.

NSLog(@"Target pos = %@", NSStringFromCGPoint(_target.position));

Прошу прощения, если это сбивает с толку, я постараюсь прояснить это. И извините, если это глупый вопрос, я только начинаю.

Спасибо за любую помощь.

Редактировать: Регистрация [self children] в игровом процессе дает:

("<CCSprite = 0x993e670 | Rect = (0.00,0.00,500.00,281.50) | tag =  | atlasIndex = -1>",
"<CCSprite = 0x9c9a350 | Rect = (68.00,0.50,32.00,25.50) | tag =  | atlasIndex = -1>",
"<CCPhysicsNode = 0xba3a220 | Name = >",
"<CCButton = 0x9c9db20 | Name = >",
"<CCButton = 0x9ca33e0 | Name = >",
"<CCLabelTTF = 0x9ca5320 | FontSize = 50.0>",
"<CCButton = 0x9ca6010 | Name = >",
"<CCButton = 0x9ca7f50 | Name = >",
"<CCSlider = 0x9caa060 | Name = >",
"<CCLabelTTF = 0x9caeed0 | FontSize = 16.0>",
"<CCLabelTTF = 0x9cafa10 | FontSize = 15.0>",
"<CCSprite = 0x9cb02f0 | Rect = (107.50,29.00,75.00,64.50) | tag =  | atlasIndex = -1>",
"<CCSprite = 0x9cb08c0 | Rect = (107.50,29.00,75.00,64.50) | tag =  | atlasIndex = -1>",
"<CCSprite = 0x9cb0e90 | Rect = (107.50,29.00,75.00,64.50) | tag =  | atlasIndex = -1>",
"<CCLabelTTF = 0x9cb1460 | FontSize = 50.0>")

1 ответ

Решение

Я решил это. Казалось, что так как у меня была такая иерархия: gamePlay->levelNode->level1

Я должен был сделать это, чтобы установить мою цель:

_target = [[levelNode getChildByName:@"level1" recursively:false] getChildByName:@"target" recursively:false];

Кажется, решил это по крайней мере пока.:)

Другие вопросы по тегам