自从开始关注之后,逐渐关注Lua语言,发现这个语言真真是容易让人喜爱的语言。偶然间发现了cocos2d-x,还支持lua,所以果断尝试一下。
这里是在下载了v2.2.3版本。
命令行中切换到解压后的COCOS2DX目录,切换到tools/project-creator,直接输入
python create_project.py
它就会告诉你有哪些参数,这里根据提示输入项目名和包名,在语言选项中选择lua就可以了,如
python create_project.py -project hellolua -package com.cnblogs.freshcat.hellolua -language lua
这样cocos2d-x lua项目就产生了,其在COCOS2DX/projects目录下产生hellolua项目文件夹。
进入该文件夹下的proj.win32文件夹,双击打开hellolua.sln
发现.h和.cpp文件,在AppDelegate.cpp的applicationDidFinishLaunching方法中
// 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("hello.lua"); pEngine->executeScriptFile(path.c_str());
这段代码看着很像java中调用lua的方式
ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName("lua");try { engine.eval("print 'hello,freshcat'");} catch (ScriptException e1) { e1.printStackTrace();}
所以上面的applicationDidFinishLaunching方法主要做的就是初始化lua引擎,执行hello.lua文件
hellolua项目文件夹下有一个Resources的文件夹下面就有一个叫hello.lua的文件,也就是说,只要看看hello.lua就可以了
未完待续..