У меня есть 2 объекта MyGameScreen, которые расширяют cocos2d :: CCLayer. Я собираю ccTouchesMove на первом экране, чтобы создать движущийся эффект точно так же, как перемещение между страницами экрана приложения iOS.Перемещение между «страницами» (CCLayer) в cocos2dx
Мой класс следующим образом:
class MyGameScreen: public cocos2d::CCLayer {
cocos2d::CCLayer* m_pNextScreen;
}
bool MyGameScreen::init() {
m_pNextScreen = MyOtherScreen::create();
}
void MyGameScreen::ccTouchesMoved(CCSet *touches, CCEvent *event){
// it crashes here... on the setPosition... m_pNextScreen is valid pointer though I am not sure that MyOtherScreen::create() is all I need to do...
m_pNextScreen->setPosition(CCPointMake((fMoveTo - (2*fScreenHalfWidth)), 0.0f));
}
EDIT: добавление ясный вопрос
Он разбился при попытке SetPosition на m_pNextScreen ...
Я понятия не имею, почему он разбился, как m_pNextScreen - действительный указатель и правильно инициализирован. Может ли кто-нибудь объяснить, почему?
EDIT: добавление прогресса отчет
Я перестроенный всю систему и сделать class CContainerLayer : public cocos2d::CCLayer
, который содержит как MyGameScreen
и MyOtherScreen
бок о бок. Однако это выглядело неэффективным подходом, так как, когда он растет, мне может потребоваться более 2 страниц, прокручиваемых бок о бок, я бы предпочел загрузить следующую страницу только тогда, когда это необходимо, а не весь CContainerLayer
, который содержит все на предстоящие страницы, будет ли пользователь прокручиваться туда или нет ... У вас есть какая-то лучшая идея или пример с открытым исходным кодом github, который делает это?
Благодарим вас за ввод!
что код в методе создания? Создает ли объект авторекламы, который вы не сохраняете? – jonynz
это обычный метод CCLayer 'init()', я ничего не добавил ... это нормально, если он нажат с помощью CCTransitionScene ... Мне интересно, если это потому, что я не называю 'this-> addChild (m_pNextScreen) ', но следующий экран не должен быть дочерним элементом этого экрана ... – Zennichimaro
Вы не задавали вопрос. Что вы хотите узнать? – LearnCocos2D