cocos2dxで最初に呼び出されるのが、AppDelgateクラスです。 これまでは、アプリ起動時に呼び出されるapplicationDidFinishLaunching()以外は使っていなかったのですが、ある処理を行うために色々調べていたところ、その他2つのメソッドの使い方を知ったので、今回はこれを紹介したいと思います。
applicationDidEnterBackground()
まず一つ目は、applicationDidEnterBackground()メソッドです。 これは、デバイスのバックグラウンドにアプリが移動した時に呼び出されます。
[c]
void AppDelegate::applicationDidEnterBackground() {
CCLOG("バックグラウンドに移動した時に呼び出されます。");
CCDirector::sharedDirector()->stopAnimation();
// if you use SimpleAudioEngine, it must be pause
// SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
[/c]
iPhoneですと、アプリを起動している時にホームボタンを押すと、このバックグラウンドに移動します。 考えられる処理としては、バックグラウンド移動した時にループによる処理を止めたりすることが考えられます。
applicationWillEnterForeground()
次は、applicationWillEnterForeground()メソッドです。 これは、先ほどとは逆に、バックグラウンドからアプリが復帰した時に呼び出されます。
[c]
void AppDelegate::applicationWillEnterForeground() {
CCLOG("バックグラウンドから復帰");
CCDirector::sharedDirector()->startAnimation();
// if you use SimpleAudioEngine, it must resume here
// SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}
[/c]
最後に
cocos2dでは、他にもっとメソッドがあったような気がしますが、cocos2dでは、以上の3つのメソッドを利用できるみたいです。 私が行いたかった処理は、アプリをバックグラウンドから消した時に呼び出されるメソッドでした。 アプリを終了した時に呼び出されるメソッドでも良かったのですが、探し出すことができなかったので、別の方法で実行をしようと思います。