Я очень новичок в spriteBuilder и cocos2d, что означает, что я уверен, что я делаю что-то неправильно ... Я просто не знаю, что.Не удается получить доступ к CCNode в качестве дочернего объекта сцены
Я добавил CCNode в «сцену уровня», которую загружаю в качестве детской сцены в свою «сцену игрового процесса», но я не могу понять, как ссылаться на CCNode, находящийся на уровне место действия.
Вроде как это:
Геймплей сцены (CCScene) Level1 сцена (CCScene) Target (CCNode)
И тогда в моем коде я:
gameplay = [CCBReader loadAsScene:@"Levels/Level1"];
А потом Я хочу получить позицию моей цели, которую я разместил внутри Уровня. Как мне это сделать? У него есть «корневой корень doc», но я могу получить доступ только к нему в пользовательском «целевом» классе. Как получить доступ к этому внутреннему игровому процессу? Этот бит кода дает мне {0, 0} при запуске из игрового процесса, но {393, 193} при запуске внутри целевого класса.
NSLog(@"Target pos = %@", NSStringFromCGPoint(_target.position));
Прошу прощения, если это сбивает с толку, я постараюсь сделать его более ясным. И жаль, если это глупый вопрос, я только начинаю.
Спасибо за любую помощь.
Edit: Logging [самоуправления детей] на геймплей дает:
("<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>")
Нет такой вещи, как глупый вопрос, мой друг! :), первое, что нужно проверить, это если ваш '_target' загружен правильно? это нуль или это фактический спрайт, который вы хотите? вы можете попробовать 'NSLog (@"% @ ", _target)' и сообщить нам, какой тип CCNode вы видите? –
Конечно! В моем классе «target.h» он дает «», а в моем gameplay.h он дает «(null) ». (В spritebuilder мой спрайт в target.ccb имеет пользовательский класс «Target» и doc root var «_target») –
Так вот в чем проблема: '_target' является' null' ... в 'gameplay', как вы инициализируете' _target '? вероятно, вот где ошибка! можете ли вы добавить фрагмент из реализации 'gameplay'? –