0
votes

I am trying to figure out how to implement a pause screen on background. In my game scene I have a method called pauseGame. I set this up so that the user can click on pause button while playing and menu comes up asking them if they want to resume or go to main menu. Now when the phone goes into the background I want to also call this same function in my game scene so that it will show that menu so that when the user comes back to the app they will be able to resume instead of it automatically starting. I have googled for hours now and tried a few things but the only thing I am able to come up with is to call the directors pause() method from the app delegate. Which is what is happening any way but I need to call the pauseGame method of my game scene. Is there an event that I can listen for in the game scene or is there a way to call my pause from the appdelegate. I just cant seem to find an answer for this one.

1

1 Answers

0
votes

App Delegate has this function, void AppDelegate::applicationDidEnterBackground(), which gets called every time app enters background.

You can access current scene by using this,

  • Director::getInstance()->getRunningScene(); cocos2d-x 3.0
  • CCDirector::sharedInstance()->getRunningScene(); cocos2d-x 2.x //Not entirely sure of the syntax, pls to check

After right typecasting and importing the appropriate header file, you can call required function from here.

Also, AppDelegate also has, void AppDelegate::applicationWillEnterForeground(), which gets called every time app enters foreground.