bool AppDelegate::applicationDidFinishLaunching() { // initialize director auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { string title = "wt-cgame-a"; glview = cocos2d::GLViewImpl::create(title.c_str()); director->setOpenGLView(glview); director->startAnimation(); } auto engine = LuaEngine::getInstance(); ScriptEngineManager::getInstance()->setScriptEngine(engine); lua_State* L = engine->getLuaStack()->getLuaState(); lua_module_register(L); // use Quick-Cocos2d-X quick_module_register(L); LuaStack* stack = engine->getLuaStack(); #if ANYSDK_DEFINE > 0 lua_getglobal(stack->getLuaState(), "_G"); tolua_anysdk_open(stack->getLuaState()); tolua_anysdk_manual_open(stack->getLuaState()); lua_pop(stack->getLuaState(), 1); #endif //register custom function //LuaStack* stack = engine->getLuaStack(); //register_custom_function(stack->getLuaState()); //FileUtils::getInstance()->setResourceEncryptKeyAndSign("test", "XXTEA"); #if 0 // use luajit bytecode package stack->setXXTEAKeyAndSign("2dxLua", "XXTEA"); #ifdef CC_TARGET_OS_IPHONE if (sizeof(long) == 4) { stack->loadChunksFromZIP("res/game.zip"); } else { stack->loadChunksFromZIP("res/game64.zip"); } #else // android, mac, win32, etc stack->loadChunksFromZIP("res/game.zip"); #endif stack->executeString("require 'main'"); #else // #if 0 // use discrete files engine->executeScriptFile("src/main.lua"); #endif return true; }
bool reloadScript(const string& file) { auto director = Director::getInstance(); FontFNT::purgeCachedData(); if (director->getOpenGLView()) { SpriteFrameCache::getInstance()->removeSpriteFrames(); director->getTextureCache()->removeAllTextures(); } FileUtils::getInstance()->purgeCachedEntries(); string modulefile = file; if (modulefile.empty() || modulefile == "ENTRY") { modulefile = ConfigParser::getInstance()->getEntryFile().c_str(); } resetLuaModule(modulefile); auto engine = LuaEngine::getInstance(); LuaStack* luaStack = engine->getLuaStack(); std::string require = "require \'" + modulefile + "\'"; return luaStack->executeString(require.c_str()); }
bool AppDelegate::applicationDidFinishLaunching() { #if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 initRuntime(); #elif (COCOS2D_DEBUG > 0 && CC_CODE_IDE_DEBUG_SUPPORT > 0) // NOTE:Please don't remove this call if you want to debug with Cocos Code IDE if (_launchMode) { initRuntime(); } #endif initResourcePath(); // initialize director auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { Size viewSize = ConfigParser::getInstance()->getInitViewSize(); string title = ConfigParser::getInstance()->getInitViewName(); #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_MAC) extern void createSimulator(const char* viewName, float width, float height, bool isLandscape = true, float frameZoomFactor = 1.0f); bool isLanscape = ConfigParser::getInstance()->isLanscape(); createSimulator(title.c_str(),viewSize.width,viewSize.height, isLanscape); #else glview = cocos2d::GLViewImpl::createWithRect(title.c_str(), Rect(0, 0, viewSize.width, viewSize.height)); director->setOpenGLView(glview); #endif director->startAnimation(); } auto engine = LuaEngine::getInstance(); ScriptEngineManager::getInstance()->setScriptEngine(engine); lua_State* L = engine->getLuaStack()->getLuaState(); lua_module_register(L); // use Quick-Cocos2d-X quick_module_register(L); LuaStack* stack = engine->getLuaStack(); #if ANYSDK_DEFINE > 0 lua_getglobal(stack->getLuaState(), "_G"); tolua_anysdk_open(stack->getLuaState()); tolua_anysdk_manual_open(stack->getLuaState()); lua_pop(stack->getLuaState(), 1); #endif stack->setXXTEAKeyAndSign("ilovecocos2dx", strlen("ilovecocos2dx"), "XXTEA", strlen("XXTEA")); stack->addSearchPath("src"); #if (COCOS2D_DEBUG > 0 && CC_CODE_IDE_DEBUG_SUPPORT > 0) // NOTE:Please don't remove this call if you want to debug with Cocos Code IDE if (_launchMode) { startRuntime(); } #endif FileUtils *utils = FileUtils::getInstance(); const char *updateFileName = "code/launcher.zip"; std::string updateFilePath = utils->fullPathForFilename(updateFileName); bool isUpdate = false; if (updateFilePath.compare(updateFileName) != 0) //check if update file exist { printf("%s\n", updateFilePath.c_str()); isUpdate = true; engine->executeScriptFile(ConfigParser::getInstance()->getEntryFile().c_str()); } if (!isUpdate) //no update file { const char *zipFilename ="code/game.zip"; std::string zipFilePath = utils->fullPathForFilename(zipFilename); if (zipFilePath.compare(zipFilename) == 0) //no game zip file use default lua file { engine->executeScriptFile(ConfigParser::getInstance()->getEntryFile().c_str()); } else { stack->loadChunksFromZIP(zipFilename); stack->executeString("require 'main'"); } } return true; }