#include "AppDelegate.h" #include "cocos2d.h" #include "SimpleAudioEngine.h" #include "ScriptingCore.h" #include "generated/jsb_cocos2dx_auto.hpp" #include "generated/jsb_cocos2dx_extension_auto.hpp" #include "cocos2d_specifics.hpp" #include "js_bindings_chipmunk_registration.h" #include "js_bindings_system_registration.h" #include "js_bindings_ccbreader.h" #include "jsb_opengl_registration.h" #include "jsb_pluginx_protocols_auto.hpp" #include "jsb_pluginx_extension_registration.h" USING_NS_CC; using namespace CocosDenshion; AppDelegate::AppDelegate() { } AppDelegate::~AppDelegate() { ScriptEngineManager::purgeSharedManager(); } bool AppDelegate::applicationDidFinishLaunching() { // initialize director Director *pDirector = Director::sharedDirector(); pDirector->setOpenGLView(EGLView::sharedOpenGLView()); // turn on display FPS pDirector->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this pDirector->setAnimationInterval(1.0 / 60); CCLOG("applicationDidFinishLaunching 01"); ScriptingCore* sc = ScriptingCore::getInstance(); sc->addRegisterCallback(register_all_cocos2dx); sc->addRegisterCallback(register_all_cocos2dx_extension); sc->addRegisterCallback(register_cocos2dx_js_extensions); sc->addRegisterCallback(jsb_register_chipmunk); sc->addRegisterCallback(jsb_register_system); sc->addRegisterCallback(JSB_register_opengl); sc->addRegisterCallback(register_all_pluginx_protocols); sc->addRegisterCallback(register_pluginx_js_extensions); sc->start(); CCLOG("applicationDidFinishLaunching 02"); ScriptEngineProtocol *pEngine = ScriptingCore::getInstance(); ScriptEngineManager::sharedManager()->setScriptEngine(pEngine); ScriptingCore::getInstance()->runScript("main.js"); CCLOG("applicationDidFinishLaunching 03"); return true; } // This function will be called when the app is inactive. When comes a phone call,it's be invoked too void AppDelegate::applicationDidEnterBackground() { Director::sharedDirector()->stopAnimation(); SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic(); SimpleAudioEngine::sharedEngine()->pauseAllEffects(); ScriptingCore* sc = ScriptingCore::getInstance(); jsval nsval; JS_GetProperty(sc->getGlobalContext(), sc->getGlobalObject(), "plugin", &nsval); if (nsval != JSVAL_VOID) { sc->executeFunctionWithOwner(nsval, "onApplicationDidEnterBackground"); } } // this function will be called when the app is active again void AppDelegate::applicationWillEnterForeground() { Director::sharedDirector()->startAnimation(); SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic(); SimpleAudioEngine::sharedEngine()->resumeAllEffects(); ScriptingCore* sc = ScriptingCore::getInstance(); jsval nsval; JS_GetProperty(sc->getGlobalContext(), sc->getGlobalObject(), "plugin", &nsval); if (nsval != JSVAL_VOID) { sc->executeFunctionWithOwner(nsval, "onApplicationWillEnterForeground"); } }