cocos2d x — C ++ Сбой при получении инструкции?

Я столкнулся с … интересной проблемой. Я обнаружил, что моя программа падает на стандартном операторе get. Для контекста я переопределяю onEnter функция (из фреймворка Cocos2dx) для замены изображения после внесения изменений в дальнейшую сцену.

Моя модификация выглядит следующим образом:

значки map< ClassA, CCSprite* >

current имеет ClassA

void onEnter(){
<parent class>::onEnter();
CCSprite* sprite = icons[current];
if (sprite){
CCNode* parent = sprite->getParent(); //Crashes Here
if (parent){...}
}
}

Из Cocos2d-x:

CCNode* getParent(){
return m_pParent;
}

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

Также:

  1. Да, иконки существуют

  2. Да, ток существует

  3. Да, спрайт существует

  4. текущий не указатель

Если это поможет, я использую QNX Momentics IDE.

РЕДАКТИРОВАТЬ :: Вот изображение

введите описание изображения здесь

1

Решение

Похоже, что это не был действительный CCSprite. Между объявлением и вызовом onEnter пул релизов, который использует cocos2dx, пометил его для удаления. Кажется, в некоторых случаях во время конструктора, CCSprite не был добавлен к родителю и не был отмечен для хранения. Таким образом, он был удален, но остался мусор. Спасибо Cyber.

1

Другие решения


По вопросам рекламы [email protected]