【cocos2dx 3.3 lua】01 新建工程与lua加密

创建

新建工程使用tools\cocos2d-console\bin下的cocos命令做,打开cmd,进入到tools\cocos2d-console\bin文件夹下,输入:

cocos new -help

可以查看帮助。

创建工程的一个示例:

cocos new Test -p com.test.test -l lua -d E:\Proj -t E:\cocos2d-x-3.3\templates\lua-template-runtime
以上命令在E:\Proj下创建一个Test工程,包名为com.test.test,使用runtime模板。

注意:

创建时,最好使用runtime模板,否则会只有lua文件,调试各种也很不方便。

使用runtime会有win32等各种工程,方便调试。


运行测试

打开工程目录下的frameworks\runtime-src\proj.win32下的win32工程,编译,运行即可。


去掉开始的connect

启动时,会有一个等待连接的界面,每次都要等一段时间,有点烦人。

去掉这个界面的修改如下:

找到C++代码,AppDelegate.cpp下的AppDelegate::applicationDidFinishLaunching,启动时使用

engine->executeScriptFile(ConfigParser::getInstance()->getEntryFile().c_str());

来替代

startRuntime();
即可。


lua文件加密

lua文件使用XXTEA加密,有相关工具,加密方法如下:

依然是使用cocos命令

cocos luacompile -s src_dir -d dst_dir -e True -k  testkey -b testsign
注意:

加密时需要指定-e True,否则后面的key和sign无效

具体可参考:http://cocos2d-x.org/wiki/Cocos_luacompile


加密后,c++代码里启动之前也需要修改相应的key和sign。

	string key = "testkey";//"2dxLua";
	string sign = "testsign";//"XXTEA";
    LuaStack* stack = engine->getLuaStack();
	stack->setXXTEAKeyAndSign(key.c_str(),strlen(key.c_str()),sign.c_str(),strlen(sign.c_str()));


附上2个bat工具,方便创建和加密

创建工具:

:project_input
@echo 请输入项目名称,按回车,例:HelloWorld
@set /p project_name=
@if "%project_name%"=="" echo.项目名称不能为空!!&goto :project_input


:package_input
@echo 请输入包名,按回车,例:com.sample.test
@set /p package_name=
@if "%package_name%"=="" echo.包名不能为空!!&goto :package_input

:lan_input
@echo 请输入语言类型(cpp lua js),按回车,例:lua
@set /p lan_name=
@if "%lan_name%"=="" echo.语言类型不能为空!!&goto :lan_input

:temp_input
@echo 请输入模板文件夹,按回车,例:lua-template-runtime
@set /p temp_name=
@if "%temp_name%"=="" echo.模板文件夹不能为空!!&goto :temp_input

:dir_input
@echo 请输入工程文件夹,按回车,例:cocos
@set /p dir_name=
@if "%dir_name%"=="" echo.工程文件夹不能为空!!&goto :dir_input


@echo 开始创建工程:%project_name%,包名:%package_name%,语言类型:%lan_name%,工程文件夹:%dir_name%
@cocos new %project_name% -p %package_name% -l %lan_name% -d %dir_name% -t %temp_name%
@if not exist "%dir_name%" echo.创建失败!!&goto :end


@start ""  "%dir_name%"
@echo 创建完成!
:end
pause


加密工具:

:src_input
@echo 请输入lua文件所在文件夹,按回车,例:src
@set /p src_name=
@if "%src_name%"=="" echo.lua文件所在文件夹不能为空!!&goto :src_input
@if not exist "%src_name%" echo.lua文件所在文件夹不存在!!&goto :src_input


:dst_input
@echo 请输入编译后的文件夹,按回车,例:dst
@set /p dst_name=
@if "%dst_name%"=="" echo.编译后的文件夹不能为空!!&goto :dst_input
@if not exist "%dst_name%" echo.编译后的文件夹不存在!!&goto :dst_input

:key_input
@echo 请输入加密key,按回车,例:2dxLua
@set /p key_name=
@if "%key_name%"=="" echo.加密key不能为空!!&goto :key_input

:sign_input
@echo 请输入加密签名,按回车,例:XXTEA
@set /p sign_name=
@if "%sign_name%"=="" echo.加密签名不能为空!!&goto :sign_input


@echo 开始编译并加密工程:%src_name%
@cocos luacompile -s %src_name% -d %dst_name% -e True -k %key_name% -b %sign_name%
@if not exist "%dst_name%" echo.创建失败!!&goto :end


@start ""  "%dst_name%"
@echo 创建完成!
:end
pause

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...