当前位置:首页 » 编程软件 » cocoslua编译

cocoslua编译

发布时间: 2022-05-18 03:06:55

‘壹’ 如何看待cocos creator加入Lua

如果在Cocos Creator里面只提供JS支持的。这样就可以很纯粹地只用一本编程语言,完成游戏逻辑、编辑器扩展、引擎扩展,引擎一个人轻装上阵就可以跑得很快,同样资源投入的情况下开发出更多功能来。
但是Cocos的Lua社区太庞大了。Cocos Creator本身的插件架构是允许随意扩展的,所以增加一个Lua扩展在技术层面并不难,难的在多一种编程语言之后的维护:
- 增加Lua中英文文档教程
- 增加Lua API文档
- 增加Lua测试例
- 增加每个版本发布前的Lua测试
- 增加Lua的论坛技术支持
这些因为‘多一门编程语言所带来的维护成本’这些才是大头。不过如果这个成本投入可以换来足够多的开发者数量,那么也就值得了。

‘贰’ 如何修改cocos lua路径

用xcode来开发cocos2dx,结果发现一个很纠结的问题,如果我一旦修改了一个Lua文件,我必须clean之后再build,否则修改的Lua文件不会体现出来。这是一个很令纠结的结果,特别是我要进行调试的时候,在网上搜索了一圈,发现xcode原来可以提供一个build phase的功能,允许在build中间执行一些脚本,而这个时候只要将脚本文件touch一下就可以解决问题,但是比较奇怪的是,如果是touch Resources文件是不行的,必须touch Resources目录下的某个文件。

每用一个新的ide总会有学习代价,现在觉得如果要开发cocos2dx+lua,linux其实是最好的开发环境,原因是如果在不修改cpp的情况下,

只需要用一个编辑器去写lua即可,然后立即重启程序就行了,而android或者ios都需要模拟器,win32直接忽略了;奈何现在换成了mac,没办法了,不过还好mac的模拟器足够快,不像android。

‘叁’ cocos lua 是怎样实现跨平台的

基本流程如下:
1.下载Cocos2d-x库,分别在Windows平台和Mac平台上解压,并安装对应的向导。
2.在Windows平台和Mac平台上创建同名工程。
3.在Windows平台上开发代码,保证将代码放在Class目录和Resource目录。
4.把Windows平台上开发的Class目录和Resource目录中的代码拷贝到Mac电脑上,覆盖同名目录。
5.在Xcode中将刚添加的代码和资源加入工程。
6.在Xcode中启动编译,在虚拟机和真机上测试,完工。

‘肆’ 如何使用Cocos Code IDE调试Lua开发的游戏

支持调试的环境

在 Windows 上你可以调试Windows和Android游戏,在 Mac 上你可以调试Mac、iOS和Android游戏。我们以 Mac 作为开发环境来演示 Code IDE 的使用,Windows上的流程和这里所介绍的几乎一样,不再赘述。

先决条件

如果你还没有安装Cocos Code IDE,请参考《如何安装和设置Cocos Code IDE》

IDE配置

基础设置

打开工具的 Preferences 页,切换到 Cocos/Lua 子页面,选择你刚刚下载的 Cocos2d-x 3.x 作为 Lua Framework。

额外设置

假设你发现我们提供给你的预编译的Android runtime不能满足你的要求,你就需要重新定制,那么你就需要提供给 IDE 几个 Android 编译需要用到的工具。这可以通过打开 Preferences/Cocos 页面进行配置。

运行、测试游戏

1. 新建一个名为 CocosLuaGame 的 Cocos Lua 工程

2. 点击工具栏上的Debug按钮

3. 默认情况下脚本会运行在我们提供的 Mac 版本预编译 runtime 上。为了简单起见,我们不对默认值进行任何改动。如果你想要在其他我们支持的目标平台上调试程序,可参考下文的“在其它目标平台上调试”

‘伍’ cocos编译android项目出错显示文件名、目录名或卷标语法不正确怎么解决

文件名、目录名或卷标语法不准确,可能是由于文件名太长或包含了这些字符“/”、“\”,“:”、“*”、“?”、“<”、“>”、“””、“|”造成的。
文件是存储在一定媒体上的一组相关信息的集合,和我们平时写在纸上的文件不是一个概念。电脑中的文件,可以是各种程序、数据、文本、图形和声像资料等。文件可以是应用程序,也可以是应用程序创建的数据文件,如Word
2010创建的Word文档,画图程序创建的位图文件等。某一部分紧密相关的存储群体,就叫做一个文件。
每个人都要有名有姓,文件也一样,无论文件大小,每个文件都必须给它一个命名,以便能在相应的磁盘中找到它,这个名字叫做文件名。Windows7规定,文件名可以有255个字符,但不能包含下列字符:“/”、“\”,“:”、“*”、“?”、“<”、“>”、“””、“|”。
为了更好地区分不同种类的文件,就像人的名字分为姓和名一样,文件名也分为两部分,中间用一个圆点隔开,圆点后面的就是文件的“姓”,叫做扩展名。
同一类型文件的扩展名相同,不同类型文件的扩展名不同,如Word 2010文件的扩展名一般是DOCX,而Excel 2010文件的扩展名一般是XLSX。电脑可以通过文件名,很方便快捷地对文件进行查找或存取操作。

‘陆’ cocos2dx 3.16怎么编译

先给自己科普一下, android sdk 是给java开发者用的, 咱C++开发者用的是android ndk, 所以就是使用ndk来编译cocos2dx程序了

使用命令行创建一个项目, 我这里创建的是一个lua项目:cocos new lua_proj2 -p com.company_name.program_name -l lua -d d:\xxx\xxx
此时创建了一个DEMO程序, 此时就可以使用cocos命令生成一个apk包, 进入到目录lua_proj2\frameworks\runtime-src下面, 在此目录下面执行命令cocos compile -p android 就会生成一个apk包, 把这个拖到genymotion上面, 就安装跑起来了.
上面说的是不使用eclipse的方式来生成一个apk包, 下面记录一下在eclipse中加载lua_proj2这个项目, 并生成apk包的过程. 为什么一定要将cocos2dx项目导入到eclipse中来生成apk包呢, 因为在eclipse中可以连接AVD来调试android程序, 再者, eclipse可以运行在linux环境下面, 后面我打算在linux进行开发, 所以这一步是一定要跨出去的

打开eclipse, 加载lua_proj2项目, 在此注意一下, 不需要加载libcocos2dx这个项目, 只要加载lua_proj2这个自己新建一项目即可
在eclipse中右击lua_proj2 -> Properties. 出现Properties for lua_proj2框框

创建一个新的builder

第一个红框是builder名称, 随便填写, 第二个红框框是NDK生成工具, 即, 使用此工具来编译C++项目, 第三个红框框是工作目录, 此处我使用lua_proj2项目目录作为工作目录, 切换到Environment选项卡, 新建一个在此生成器中使用的环境变量NDK_MODULE_PATH, 值是......\lua_proj2\frameworks\cocos2d-x\cocos;......\lua_proj2\frameworks\cocos2d-x;......\lua_proj2\frameworks\cocos2d-x\external, 前面的.......是绝对目录的省略, 这里要输入绝对路径名称, 在此我就不写绝对路径了.

一路OK下去, 到下面这个画面

这个就新建立的builder, Project->Build Project

出现大量的error: 'override' does not name a type错误, 这是由于NDK的版本太低了, override是C++11中才有的关键字, 而到NDKr10才支持C++11, 所以要升级NDK. 到官网去下载吧
不大, 400多M的样子, 更新完成之后, 看一下ndk\toolchains目录下面的编译器, 我的目录是下面这样子的

我很想使用clang来编译, 但是现阶段我还不会配置, 就用GCC吧, x86-4.6 & x86-4.8两个版本的GCC, 4.8的支持C++11
在Application.mk中添加一句NDK_TOOLCHAIN_VERSION = 4.8 就是指定使用GCC4.8来编译cocos2dx项目, 跑起来了, 下面是eclipse跑起来的console输出

跟命令行下执行cocos compile -p android 跑出来的是一样的, 都是在编译程序. 下面进入到在eclipse下面调试程序

‘柒’ cocos lua 是怎么调用c++的

使用cocos2dx-lua开发,免不了自己定义类,但是如何使用自定义的类的?先了解下lua如何调用c++的:lua脚本代码->通过coocs2dx中间解析层代码->将其转换并调用cocos2dxc++的前端代码coocs2dx中间解析层代码都在libs/lua/cocos2dx_support/LuaCocos2d.cpp这个文件中,想了解的可以自己去看下这个文件。也就是说,你自己定义了一个类,lua能够调用你自己定义的类,你的自定义类就必须在LuaCocos2d.cpp这个中间解析文件中申明。看了LuaCocos2d.cpp这个文件,可能有的同学都晕了,不知道怎么在LuaCocos2d.cpp中申明自己的定义的类。不过,不用担心,cocos2dx已经提供了tolua++这个工具自动编译生成新的LuaCocos2d.cpp文件。下面开始进入正题。一、创建一个coocs2dx-lua的Demo工程,然后在class中自己定义个类。SNSprite.h[/cpp]////SNSprite.h//LuaDemo////CreatedbyLiuYanghuion13-4-8.////#ifndef__LuaDemo__SNSprite__#define__LuaDemo__SNSprite__#include“cocos2d.h”USING_NS_CC;classSNSprite:publicCCSprite{public:staticSNSprite*create(constchar*name);private:voidinitData();};#endif/*defined(__LuaDemo__SNSprite__)*/[/cpp]SNSprite.cppC++localfunctioncreateSunnyLayer()locallayerSunny=CCLayer:create()locallabTips=CCLabelTTF:create("这个icon图标就是使用的自定义类","Arial",18)labTips:setPosition(ccp(240,280))layerSunny:addChild(labTips)localsp=SNSprite:create("Icon.png")sp:setPosition(ccp(100,100))layerSunny:addChild(sp)returnlayerSunnyend--playbackgroundmusic,preloadeffect添加到scene中:C++--runlocalsceneGame=CCScene:create()--创建场景--sceneGame:addChild(createLayerFarm())--将农场层加入场景--sceneGame:addChild(createLayerMenu())--将菜单界面层加入场景sceneGame:addChild(createSunnyLayer())CCDirector:sharedDirector():runWithScene(sceneGame)OK,xcode编译运行,就看到效果了。

‘捌’ 怎么用lua compile对lua脚本加密

cmd运行命令:
cocos luacompile -s src/ -d out/ -e -k testKey123456 -b testSign12345 --disable-compile
提示:
D:\zm\Test>cocos luacompile -s src/ -d out/ -e -k testKey123456 -b testSign12345 --disable-compile
通过 luacompile 命令对 lua 文件进行 XXTEA 加密以及编译为字节码的处理。
编译为字节码的功能基于 LuaJIT v2.0.3,所以目前编译成字节码的文件不适用于 iOS 64
位设备。
正在处理 lua 文件。
编译完成。
编译成功:我把 out 目录的名字换成了 src ,原 src 目录改名叫 src_org
vs 中 加入 这一句:
stack->setXXTEAKeyAndSign("testKey123456", strlen("testKey123456"), "testSign123456", strlen("testSign123456"));

‘玖’ cocos2dx-lua 能不能用AMF3来加密lua源文件

你用的是cocos2dx 3.2版本吗?如果是的话,加密就会比较简单了。

官方文档详见:http://cocos2d-x.org/wiki/Cocos_luacompile

.lua文件编译为.luac文件[.lua to .luac]
在项目文件目录下尝试
cocos luacompile -h查看帮助信息
cocos luacompile -s ./projects/MyLuaGame/src -d ./projects/MyLuaGame/src -e -k MyLuaKey -b MyLuaSign

./projects/MyLuaGame/src--》lua源文件目录

./projects/MyLuaGame/src--》生成luac存放目录

关于MyLuaKey及MyLuaSign的设置,见AppDelegate.cpp

stack->setXXTEAKeyAndSign("2dxLua", strlen("2dxLua"), "XXTEA", strlen("XXTEA"));

修改对应的key及sign即可。

‘拾’ 怎样使用Cocos LUACompile

下载 Ant。
解压下载文件到文件夹
建立环境变量 JAVA_HOME 是你的javascript 环境。 ANT_HOME 是你解压Ant的文件目录, 添加 ${ANT_HOME}/bin (Unix) or %ANT_HOME%/bin (Windows) 到你的 PATH.
// Example: Execute in console or add into .bash_profile(Mac)
export ANT_ROOT=/usr/local/ant/bin
export JAVA_HOME=/usr/local/jdk1.7.0_51

用法
在正确安装完成后,你可以开始使用 cocos 命令在你的控制台(console)
创建一个新工程
你可以使用如下命令容易的创建一个新的Cocos2d-x Lua 工程。
cocos new projectName -l lua

在指定目录创建一个工程
cocos new projectName -l lua -d ./Projects

运行工程
cd directory/to/project
cocos compile -p ios|mac|android|linux
cocos run -p ios|mac|android| linux

有用的选项
-p platform : 平台可以是 ios|mac|android|web.
-s source : 你的工程目录, 如果不指定当前目录会被使用.
-q : 静默模式, 移除日志消息.
-m mode : debug 或 release 模式, 默认是debug
帮助
如果你对用法有任何疑惑,请使用 -h 与任何命令 去获取一些帮助信息。这里是所有三个命令:
new for create
compile for compile
run for run

热点内容
交叉编译优化 发布:2025-05-14 03:48:52 浏览:529
动图在线压缩 发布:2025-05-14 03:35:24 浏览:132
w7共享无法访问 发布:2025-05-14 03:35:24 浏览:482
为什么微信会出现账号密码错误 发布:2025-05-14 03:03:30 浏览:692
幻影脚本官网 发布:2025-05-14 03:01:13 浏览:826
servlet的webxml怎么配置 发布:2025-05-14 02:51:46 浏览:772
怎么取消手势密码 发布:2025-05-14 02:51:11 浏览:639
openvpn搭建vpn服务器搭建 发布:2025-05-14 02:47:52 浏览:998
密码忘了从哪里找 发布:2025-05-14 02:39:09 浏览:548
我的世界什么服务器有前途 发布:2025-05-14 02:30:31 浏览:528