本文整理汇总了C++中CCLuaStack::getLuaState方法的典型用法代码示例。如果您正苦于以下问题:C++ CCLuaStack::getLuaState方法的具体用法?C++ CCLuaStack::getLuaState怎么用?C++ CCLuaStack::getLuaState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCLuaStack
的用法示例。
在下文中一共展示了CCLuaStack::getLuaState方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::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);
// register lua engine
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State *tolua_s = pStack->getLuaState();
tolua_extensions_ccb_open(tolua_s);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
pStack = pEngine->getLuaStack();
tolua_s = pStack->getLuaState();
tolua_web_socket_open(tolua_s);
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY)
CCFileUtils::sharedFileUtils()->addSearchPath("script");
#endif
std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("Welcome.lua");
pEngine->executeScriptFile(path.c_str());
return true;
}
示例2: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
pDirector->setOpenGLView(pEGLView);
CCSize frameSize = pEGLView->getFrameSize();
pEGLView->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, kResolutionExactFit);
if (frameSize.height > mediumResource.size.height)
{
pDirector->setContentScaleFactor(MIN(smallResource.size.height/designResolutionSize.height, smallResource.size.width/designResolutionSize.width));
}
// if the frame's height is larger than the height of small resource size, select medium resource.
else if (frameSize.height > smallResource.size.height)
{
pDirector->setContentScaleFactor(MIN(smallResource.size.height/designResolutionSize.height, smallResource.size.width/designResolutionSize.width));
}
// if the frame's height is smaller than the height of medium resource size, select small resource.
else
{
pDirector->setContentScaleFactor(MIN(smallResource.size.height/designResolutionSize.height, smallResource.size.width/designResolutionSize.width));
}
// 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);
// register lua engine
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State *tolua_s = pStack->getLuaState();
tolua_extensions_ccb_open(tolua_s);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
pStack = pEngine->getLuaStack();
tolua_s = pStack->getLuaState();
tolua_web_socket_open(tolua_s);
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY)
CCFileUtils::sharedFileUtils()->addSearchPath("script");
#endif
std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("scripts/main.lua");
pEngine->addSearchPath(path.substr(0, path.find_last_of('/')).c_str());
pEngine->executeScriptFile(path.c_str());
return true;
}
示例3: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::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);
// register lua engine
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State *tolua_s = pStack->getLuaState();
tolua_extensions_ccb_open(tolua_s);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
pStack = pEngine->getLuaStack();
tolua_s = pStack->getLuaState();
tolua_web_socket_open(tolua_s);
#endif
std::vector<std::string> searchPaths;
searchPaths.push_back("cocosbuilderRes");
searchPaths.insert(searchPaths.begin(), "scenetest/ArmatureComponentTest");
searchPaths.insert(searchPaths.begin(), "scenetest/AttributeComponentTest");
searchPaths.insert(searchPaths.begin(), "scenetest/BackgroundComponentTest");
searchPaths.insert(searchPaths.begin(), "scenetest/EffectComponentTest");
searchPaths.insert(searchPaths.begin(), "scenetest/LoadSceneEdtiorFileTest");
searchPaths.insert(searchPaths.begin(), "scenetest/ParticleComponentTest");
searchPaths.insert(searchPaths.begin(), "scenetest/SpriteComponentTest");
searchPaths.insert(searchPaths.begin(), "scenetest/TmxMapComponentTest");
searchPaths.insert(searchPaths.begin(), "scenetest/UIComponentTest");
searchPaths.insert(searchPaths.begin(), "scenetest/TriggerTest");
#if CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY
searchPaths.push_back("TestCppResources");
searchPaths.push_back("script");
#endif
CCFileUtils::sharedFileUtils()->setSearchPaths(searchPaths);
pEngine->executeScriptFile("luaScript/controller.lua");
return true;
}
示例4: SendBinaryMessageToLua
static int SendBinaryMessageToLua(int nHandler,const unsigned char* pTable,int nLength)
{
if (NULL == pTable || nHandler <= 0) {
return 0;
}
if (NULL == CCScriptEngineManager::sharedManager()->getScriptEngine()) {
return 0;
}
CCLuaStack *pStack = CCLuaEngine::defaultEngine()->getLuaStack();
if (NULL == pStack) {
return 0;
}
lua_State *tolua_s = pStack->getLuaState();
if (NULL == tolua_s) {
return 0;
}
int nRet = 0;
CCLuaValueArray array;
for (int i = 0 ; i < nLength; i++) {
CCLuaValue value = CCLuaValue::intValue(pTable[i]);
array.push_back(value);
}
pStack->pushCCLuaValueArray(array);
nRet = pStack->executeFunctionByHandler(nHandler, 1);
pStack->clean();
return nRet;
}
示例5: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::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);
// register lua engine
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State *tolua_s = pStack->getLuaState();
tolua_extensions_ccb_open(tolua_s);
std::vector<std::string> searchPaths;
searchPaths.push_back("cocosbuilderRes");
#if CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY
searchPaths.push_back("TestCppResources");
#endif
CCFileUtils::sharedFileUtils()->setSearchPaths(searchPaths);
pEngine->executeScriptFile("luaScript/controller.lua");
return true;
}
示例6: initLuaEngine
void AppDelegate::initLuaEngine()
{
#ifdef ENABLE_LUA_ENGINE
// register lua engine
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
// Note: init lua search path
string path = GameResourceManager::sharedManager()->storedFullPathFromRelativePath("Script/main.lua");
string scriptPath = path.substr(0, path.find_last_of("S"));
pEngine->addSearchPath(scriptPath.c_str());
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State *tolua_s = pStack->getLuaState();
tolua_extensions_ccb_open(tolua_s);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
pStack = pEngine->getLuaStack();
tolua_s = pStack->getLuaState();
//tolua_web_socket_open(tolua_s);
#endif
#endif
}
示例7: decryptXXTEALua
LUA_STRING CCCrypto::decryptXXTEALua(const char* plaintext,
int plaintextLength,
const char* key,
int keyLength)
{
CCLuaStack* stack = CCLuaEngine::defaultEngine()->getLuaStack();
stack->clean();
int resultLength;
unsigned char* result = decryptXXTEA((unsigned char*)plaintext, plaintextLength, (unsigned char*)key, keyLength, &resultLength);
if (resultLength <= 0)
{
lua_pushnil(stack->getLuaState());
}
else
{
lua_pushlstring(stack->getLuaState(), (const char*)result, resultLength);
free(result);
}
return 1;
}
示例8: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
pDirector->setDisplayStats(true);
pDirector->setAnimationInterval(1.0 / 60);
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(960, 640, kResolutionShowAll);
// register lua engine
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State *tolua_s = pStack->getLuaState();
tolua_extensions_ccb_open(tolua_s);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
pStack = pEngine->getLuaStack();
tolua_s = pStack->getLuaState();
tolua_web_socket_open(tolua_s);
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY)
CCFileUtils::sharedFileUtils()->addSearchPath("script");
#endif
CCFileUtils::sharedFileUtils()->addSearchPath("luaScript");
//cocoswidget lua binding open api
tolua_Lua_cocos2dx_widget_open(tolua_s);
std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("main.lua");
pEngine->executeScriptFile(path.c_str());
pEngine->executeGlobalFunction("main");
return true;
}
示例9: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
// CCEGLView::sharedOpenGLView()->setDesignResolutionSize(480, 320, kResolutionNoBorder);
// 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 / GAME_FPS);
StringVector kSearchPaths;
StringVector kOrders;
if (!initSearchPaths(kSearchPaths))
{
CCLOG("Initialise searching path failed!");
return false;
}
if (false == autoSizeMachineResolutions(kOrders))
{
return false;
}
CCFileUtils::sharedFileUtils()->setSearchResolutionsOrder(kOrders);
pDirector->setContentScaleFactor(
m_kResourceSize.width / m_kDesignSize.width);
// register lua engine
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State *tolua_s = pStack->getLuaState();
tolua_extensions_ccb_open(tolua_s);
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
CCFileUtils::sharedFileUtils()->setSearchPaths(kSearchPaths);
std::string strLuaPath = CCFileUtils::sharedFileUtils()->fullPathForFilename(
ENTRY_LUA_FUNC);
CCLOG("Will exceute %s\n",strLuaPath.c_str());
pEngine->executeScriptFile(strLuaPath.c_str());
return true;
}
示例10: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
pDirector->setProjection(kCCDirectorProjection2D);
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60);
// register lua engine
CCLuaEngine *pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State* L = pStack->getLuaState();
// load lua extensions
luaopen_lua_extensions(L);
// load cocos2dx_extensions luabinding
luaopen_cocos2dx_extensions_luabinding(L);
// load cocos2dx_extra luabinding
luaopen_cocos2dx_extra_luabinding(L);
// load precompiled framework
luaopen_framework_precompiled(L);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("scripts/main.lua");
#else
string path = CCFileUtils::sharedFileUtils()->fullPathForFilename(getStartupScriptFilename().c_str());
#endif
int pos;
while ((pos = path.find_first_of("\\")) != std::string::npos)
{
path.replace(pos, 1, "/");
}
size_t p = path.find_last_of("/\\");
if (p != path.npos)
{
const string dir = path.substr(0, p);
pStack->addSearchPath(dir.c_str());
p = dir.find_last_of("/\\");
if (p != dir.npos)
{
pStack->addSearchPath(dir.substr(0, p).c_str());
}
}
string env = "__LUA_STARTUP_FILE__=\"";
env.append(path);
env.append("\"");
pEngine->executeString(env.c_str());
CCLOG("------------------------------------------------");
CCLOG("LOAD LUA FILE: %s", path.c_str());
CCLOG("------------------------------------------------");
pEngine->executeScriptFile(path.c_str());
return true;
}
示例11: LUA_EXECUTE_COMMAND
void LUA_EXECUTE_COMMAND(int nCommand)
{
if( nCommand == 12 ) //百度Android
{
#if (AGENT_SDK_CODE == 12)
JniMethodInfo methodInfo;
if( JniHelper::getStaticMethodInfo(methodInfo, "com/haowan123/kof/bd/GameBox", "dkAccountManager", "()V") )
{
methodInfo.env->CallStaticVoidMethod(methodInfo.classID, methodInfo.methodID );
}
else
{
CCLOG("GameBox::openDKAccountManager method missed!");
}
#endif
}
else if( nCommand == 2 ) //360Android
{
#if (AGENT_SDK_CODE == 2)
JniMethodInfo methodInfo;
if( JniHelper::getStaticMethodInfo(methodInfo, "com/haowan123/kof/qh/GameBox", "doSdkAccountManager", "()V") )
{
methodInfo.env->CallStaticVoidMethod(methodInfo.classID, methodInfo.methodID );
}
else
{
CCLOG("GameBox::doSdkAccountManager method missed!");
}
#endif
}
if( nCommand == 84 )
{
CCScriptEngineProtocol *pEngine = CCScriptEngineManager::sharedManager()->getScriptEngine();
if( pEngine == NULL )
return;
CCLuaEngine *pLuaEngine = dynamic_cast<CCLuaEngine *>(pEngine);
if( pLuaEngine == NULL )
return;
CCLuaStack *pLuaStack = pLuaEngine->getLuaStack();
if( pLuaStack == NULL )
return;
lua_State *L = pLuaStack->getLuaState();
lua_getglobal(L, "g_resetAll");
lua_call(L, 0, 1);
lua_pop(L, 1);
CCLOG("LLLLLLLL");
// CCScriptEngineManager::sharedManager()->removeScriptEngine();
// CCLOG("84-2");
// CCLuaEngine *pEngine = CCLuaEngine::defaultEngine();
// CCLOG("84-3");
// CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
// CCLOG("84-4");
// ptola::script::CLuaClassSupport::initialize(pEngine);
// CCLOG("84-5");
CCDirector *pDirector = CCDirector::sharedDirector();
CCLOG("84-1");
int nLevelLimit = CCUserDefault::sharedUserDefault()->getIntegerForKey("LevelResource", 0);
CCLOG("84-6");
pDirector->popToRootScene();
CCLOG("84-7");
CCScene *pUpdateScene = CGameUpdateScene::scene(nLevelLimit);
CCLOG("84-8 %d", pUpdateScene);
pDirector->pushScene(pUpdateScene);
CCLOG("84-9");
pDirector->setShowBundleVersion(true);
CCLOG("84-10");
}
CCLOG("EXECUTE_LUA_COMMAND: %d", nCommand);
return;
}
示例12: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
pDirector->setProjection(kCCDirectorProjection2D);
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60);
// register lua engine
CCLuaEngine *pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State* L = pStack->getLuaState();
tolua_ChessRule_luabinding_open(L);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
// load framework
pStack->loadChunksFromZIP("res/framework_precompiled.zip");
// set script path
string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("scripts/main.lua");
#else
// load framework
if (m_projectConfig.isLoadPrecompiledFramework())
{
const string precompiledFrameworkPath = SimulatorConfig::sharedDefaults()->getPrecompiledFrameworkPath();
pStack->loadChunksFromZIP(precompiledFrameworkPath.c_str());
}
// set script path
string path = CCFileUtils::sharedFileUtils()->fullPathForFilename(m_projectConfig.getScriptFileRealPath().c_str());
#endif
size_t pos;
while ((pos = path.find_first_of("\\")) != std::string::npos)
{
path.replace(pos, 1, "/");
}
size_t p = path.find_last_of("/\\");
if (p != path.npos)
{
const string dir = path.substr(0, p);
pStack->addSearchPath(dir.c_str());
p = dir.find_last_of("/\\");
if (p != dir.npos)
{
pStack->addSearchPath(dir.substr(0, p).c_str());
}
}
string env = "__LUA_STARTUP_FILE__=\"";
env.append(path);
env.append("\"");
pEngine->executeString(env.c_str());
CCLOG("------------------------------------------------");
CCLOG("LOAD LUA FILE: %s", path.c_str());
CCLOG("------------------------------------------------");
pEngine->executeScriptFile(path.c_str());
return true;
}
示例13: LoadScript
bool GameScriptManger::LoadScript(const char* szPath)
{
XFUNC_START();
do
{
if(!m_pLs)
{
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
if(!pEngine)
break;
CCLuaStack* pLuaState = pEngine->getLuaStack();
if(!pLuaState)
break;
m_pLs = pLuaState->getLuaState();
tolua_GameScript_Open(m_pLs);
int nTop = lua_gettop(m_pLs);
if(szPath && szPath[0])
{
// 设置自己的Lua table 名词
cocos2d::CCString* pstrFileContent = cocos2d::CCString::createWithContentsOfFile(szPath);
if (!pstrFileContent)
{
break;
}
if(!m_bySetGlobal)
{
lua_pushnumber(m_pLs, g_wChannelNum);
lua_setglobal(m_pLs, "g_wChannelNum");
lua_pushnumber(m_pLs, g_wCharge);
lua_setglobal(m_pLs, "g_wCharge");
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID )
lua_pushnumber(m_pLs, 2);
lua_setglobal(m_pLs, "g_TargType");
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
lua_pushnumber(m_pLs, 1);
lua_setglobal(m_pLs, "g_TargType");
#else
lua_pushnumber(m_pLs, 3);
lua_setglobal(m_pLs, "g_TargType");
#endif
}
int nRes = luaL_dostring(m_pLs, pstrFileContent->getCString());
if(nRes)
{
CCLOG("GameScriptManger::LoadScript luaL_dofile [%s] Faild, Error Info is [%s]",
szPath, lua_tostring(m_pLs, -1));
lua_pop(m_pLs,1); // error info
break;
}
}
}
int nEnd = 0;
const char* sztableName = GetLuaTableName();
lua_getglobal(m_pLs, "GameScript");
if(lua_istable(m_pLs, -1))
{
// 测试代码
/*lua_pushnumber(m_pLs, 111.1);
lua_setfield(m_pLs, -2, "tCtrl");
lua_pushstring(m_pLs, "I am panel");
lua_setfield(m_pLs, -2, "tPanel");*/
//测试结束
// 调用Onload函数
lua_getfield(m_pLs, -1, "OnLoad");
if(lua_isfunction(m_pLs, -1))
{
int nRes = lua_pcall(m_pLs, 0, 1, 0);
if(nRes)
{
CCLOG("GameScriptManger::LoadScript call OnLoad Faild, Error info is[%s]!!!",
lua_tostring(m_pLs, -1));
lua_pop(m_pLs,1); // error
lua_pop(m_pLs,1); // table
break;
}
// get return value
if (!lua_isnumber(m_pLs, -1))
{
lua_pop(m_pLs, 1); // error
lua_pop(m_pLs, 1); // table
break;
}
nEnd = lua_tointeger(m_pLs, -1);
lua_pop(m_pLs, 1);
}
}
lua_pop(m_pLs,1); // table
#ifdef X_SDK_SWITCH
if(!m_bySetGlobal)
{
lua_pushnumber(m_pLs, 1);
lua_setglobal(m_pLs, "g_IsSDKVersion");
}
#endif
m_bySetGlobal = 0xFF;
//.........这里部分代码省略.........
示例14: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
//#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS
// //Lua版本、JS版本请参考并在lua侧或js侧调用,同时请在该applicationFinishLaunching接口调用dataeye.h中的接口注入接口
// //添加DataEye需要配置的appID和channelId
// //APPID 是一组32位的代码,可以在g.dataeye.com创建游戏后获得.
// //“937042C1192B1833CD8DF4895B281674”的部分要按照实际情况设置,一定要记得替换哦
// //DC_AFTER_LOGIN模式适用于有账号体系的游戏,后面必须要调用DCAccount login,否则不会上报数据。
// //DEFAULT模式适用于不存在账号体系的游戏(如单机),SDK会用设备ID作为用户的ID
// //请选择合适于自己游戏的上报模式
// DCAgent::setReportMode(DC_AFTER_LOGIN);
// DCAgent::setDebugMode(true);
// DCAgent::onStart("937042C1192B1833CD8DF4895B281674", "DataEye");
//#endif
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
pDirector->setProjection(kCCDirectorProjection2D);
/////.........COPY 3 FILES FIRST. //////////////////
string Srcfile = CCFileUtils::sharedFileUtils()->getSearchPaths()[0] + "res_phone/";//game.dat"; //game.dat
string cachePath = CCFileUtils::sharedFileUtils()->getWritablePath() + "res_iphone/";
string lockPath = cachePath + ".lock";
fstream _file;
_file.open(lockPath.c_str(),ios::in);
CCLog("Srcfile:%s",Srcfile.c_str());
CCLog("cachePath:%s",cachePath.c_str());
CCLog("lockPath:%s",lockPath.c_str());
if (!_file)
{
if ( CheckDir(cachePath.c_str()) )
{
CCLog("create :%s success!",cachePath.c_str());
MyCopyFile(Srcfile + "game.dat",cachePath + "game.dat");
MyCopyFile(Srcfile + "framework_precompiled.zip",cachePath + "framework_precompiled.zip");
ofstream fout;
fout.open(cachePath+".lock",ios::app);
fout<<" "<<endl;
}
else
{
CCLog("create :%s failed!",cachePath.c_str());
}
}
else
{
CCLog(".lock exists!");
}
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60);
// register lua engine
CCLuaEngine *pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
CCLuaStack *pStack = pEngine->getLuaStack();
#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
lua_State *tolua_s = pStack->getLuaState();
#endif
#if defined(ENCRYPT_RESOURCE_ENABLED) && ENCRYPT_RESOURCE_ENABLED == 1
std::string pathBase = "res_phone/";
#else
std::string pathBase = "res/";
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
// load framework
pathBase = "res_phone/";
std::string pre_zip = "framework_precompiled.zip";
pre_zip = pathBase+pre_zip;
CCLog("cpp loadChunksFromZIP begin-- ");
pStack->loadChunksFromZIP(pre_zip.c_str());
CCLog("cpp loadChunksFromZIP end-- ");
// set script path
string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("scripts/main.lua");
#endif
size_t pos;
while ((pos = path.find_first_of("\\")) != std::string::npos)
{
path.replace(pos, 1, "/");
}
size_t p = path.find_last_of("/\\");
if (p != path.npos)
{
const string dir = path.substr(0, p);
pStack->addSearchPath(dir.c_str());
p = dir.find_last_of("/\\");
if (p != dir.npos)
{
pStack->addSearchPath(dir.substr(0, p).c_str());
//.........这里部分代码省略.........
示例15: applicationDidFinishLaunching
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(480, 800, kResolutionShowAll);
// turn on display FPS
pDirector->setDisplayStats(false);
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60);
// register lua engine
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
lua_State *state = pEngine->getLuaStack()->getLuaState();
tolua_MyExt_open(state);
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
//加载cjson
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State* L = pStack->getLuaState();
luaopen_lua_extensions(L);
#if (CC_TARGET_PLATFORM != CC_PLATFORM_WIN32 && ANALYTICS_UMENG == 1)
loadAnalyticsPlugin();
g_pAnalytics->setDebugMode(false);
g_pAnalytics->startSession(s_strAppKey.c_str());
g_pAnalytics->setCaptureUncaughtException(true);
AnalyticsUmeng* pUmeng = dynamic_cast<AnalyticsUmeng*>(g_pAnalytics);
//AnalyticsFlurry* pFlurry = dynamic_cast<AnalyticsFlurry*>(g_pAnalytics);
if (pUmeng != NULL)
{
pUmeng->updateOnlineConfig();
pUmeng->setDefaultReportPolicy(AnalyticsUmeng::REALTIME);
}
/*
if (pFlurry != NULL)
{
pFlurry->setReportLocation(true);
pFlurry->logPageView();
// const char* sdkVersion = pFlurry->getSDKVersion();
pFlurry->setVersionName("1.1");
pFlurry->setAge(20);
pFlurry->setGender(AnalyticsFlurry::MALE);
pFlurry->setUserId("123456");
pFlurry->setUseHttps(false);
}*/
#endif
CCLog("before to load lua file");
CCLog("platform ");
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
CCLog("before android add search path");
//pEngine->addSearchPath((CCFileUtils::sharedFileUtils()->getWritablePath() + "script/").c_str());
//CCFileUtils::sharedFileUtils()->addSearchPath((CCFileUtils::sharedFileUtils()->getWritablePath() + "script/").c_str());
CCString* pstrFileContent = CCString::createWithContentsOfFile("Entry");
CCLOG("%s","read script from phone memory");
pEngine->executeString(pstrFileContent->getCString());
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
CCLuaStack *pStack = pEngine->getLuaStack();
lua_State *tolua_s = pStack->getLuaState();
tolua_AppstorePurchase_open(tolua_s);
std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("Entry");
pEngine->addSearchPath(path.substr(0, path.find_last_of("/")).c_str());
CCString* pstrFileContent = CCString::createWithContentsOfFile("Entry");
pEngine->executeString(pstrFileContent->getCString());
#else
std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("Entry");
pEngine->addSearchPath(path.substr(0, path.find_last_of("/")).c_str());
CCString* pstrFileContent = CCString::createWithContentsOfFile("Entry");
const char * res = pstrFileContent->getCString();
int len = strlen(res);
int remain_len = len % 8;
int desSize = len+1;
if(remain_len>0){
desSize += 8 - remain_len;
}
unsigned char* des = (unsigned char*)malloc(desSize*sizeof(unsigned char));
//加密脚本
file_encrypt(res,des,desSize);
pEngine->executeString(file_decrypt(des,desSize));//解密脚本
//unsigned long desSize = 0;
//unsigned char * enc = CCFileUtils::sharedFileUtils()->getFileData(path.c_str(), "rb", &desSize);
//char * res = file_decrypt(enc,desSize);
//.........这里部分代码省略.........