Hi Everyone,
I’m having a problem with my cocos2d-x project.
In my project I have a GameManager class that replaces one scene with another.
e.g.
if (CCDirector::sharedDirector()->getRunningScene() == NULL) {
CCDirector::sharedDirector()->runWithScene(sceneToRun);
}else{
CCDirector::sharedDirector()->replaceScene(sceneToRun);
}
So I have 2 scenes, each having its own layer.
When I run the first scene and touch the screen, the ccTouchesBegan of the first scene gets called, which is the right response to be expected.
I then click a CCMenuItem that replaces the current scene with the old scene. Therefore, in theory, the first scene and layer should be replaced with the new second scene and its corresponding layer.
Outwardly, everything seems to be A-OK. The CCTextFieldTTFs that I put on the 2nd scene are all there… Then I click somewhere on the screen that is outside of any of the textfield’s rect….CCTouchesBegan DOES get called….but guess what?? The CCTouchesBegan of the first scene is the one getting called and NOT the new second scene’s CCTouchesBegan.
Not only this, I then click on a CCMenuItem that replaces this current second scene with the first scene again so I can go back to where I started. This works fine….
and then I click on the screen again, the CCTouchesBegan of the first scene gets called …but what is not to be expected but still happens is the second scene’s parent class’s CCTouchesBegan also gets called after it……This would cause the app to crash by this point……
What’s going oN??
How do I solve this???
Thank you very much…