Не могу получить доступ к 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];
Кажется, решил это по крайней мере пока.:)