开始为游戏增加Lua脚本支持,今天主要配置了一下开发环境:cocos2d-x 2.2.1,xcode5。

1. 创建cocos2d-x-lua项目

类似于创建C++项目,用以下命令即可:

python create_project.py -project Lua1 -package com.GAMTEQ.Lua1 -language lua

这样创建出的项目,主要是为了让lua调用C++,即以Lua脚本来启动游戏。

2. 为项目增加Lua支持

由于我的游戏以前没有Lua支持,所以不能用上述命令。

解决方法很简单,把$MYDIR/cocos2d-x-2.2.1/scripting/lua目录add到xcode的项目里就可以了。

但是要注意不是全部add,具体add哪些文件,要参考1中的lua目录内容:

但是链接时遇到问题

ld: warning: ignoring file /Users/Christian/code/cocos2d-x-2.2.1/scripting/lua/luajit/android/armeabi/libluajit.a, file was built for archive which is not the architecture being linked (i386): /Users/Christian/code/cocos2d-x-2.2.1/scripting/lua/luajit/android/armeabi/libluajit.a

Undefined symbols for architecture i386:

  "_luaL_checklstring", referenced from:

      _cocos2dx_lua_loader in Cocos2dxLuaLoader.o

明明add的是luajit/ios/libluajit.a,为什么报错信息显示链接到android的库了呢,看了xcode项目信息,也是ios的库。

于是删掉这几个库,执行sh $MYDIR/cocos2d-x-2.2.1/scripting/lua/luajit/build_ios.sh重新编译luajit,问题解决。

这种链接错误在我编译libcurl时也遇到过,可见xcode这里是有bug的,所以再遇到这种问题,还是手动重编库为妙。

3. C++访问Lua脚本

具体访问方法参考我GitHub上今天的commit,不细说。

值得一提的是,Lua脚本放在何处。我本来是放在Classes下的,然后再add进Resources。但是ios的资源是要拷贝到Resources下的,导致同样的脚本有2个副本。运行的时候发现,修改Classes下的脚本,不影响运行结果,重新add进Resources也无用。只有直接修改Resources下的脚本才有效。

所以还是应该把Lua脚本放在Resouces/Script目录下。

4. Lua脚本编辑器

xcode貌似不能支持Lua,既没高亮又没提示。今天尝试了Sublime和IntelliJ,果断选择前者,非常好用。尽量不用破解版,未购买只是会偶尔弹窗提示几次而已。配置Sublime开发环境的方法参考我转载的一篇文章:

http://www.cnblogs.com/gamteq/p/3535152.html

5. 计划

接下来几天准备复习一下Lua语法,把游戏的配置和角色状态机用Lua改写。

为cocos2d-x项目增加Lua支持的更多相关文章

  1. Visual Stdio 2017增加SVN支持

    实验目的 当前公司项目源码文档等内容都保存在svn上,现在是用着小乌龟在文件浏览状态中去检出和提交等操作,没有集成到vs2017中来,比较麻烦.现在要把vs2017增加svn支持,希望可以直接在IDE ...

  2. Spring MVC 4.2 增加 CORS 支持

    转自:http://blog.csdn.net/z69183787/article/details/53102112 Spring MVC 4.2 增加 CORS 支持 跨站 HTTP 请求(Cros ...

  3. [原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥)

    [原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥) nohacks 发表于 2016-5-29 17:12:51 https:// ...

  4. windows 下 gvim/vim lua支持问题,neocomplete等插件支持

    此文是按照知乎 https://www.zhihu.com/question/29333426 "windows下vim的lua支持问题?" 一文汇总的解决方案. 题主提供了不错的 ...

  5. Linux PHP增加JSON支持及如何使用JSON

    Linux PHP增加JSON支持及如何使用JSON 目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它. JSON(JavaScript Object Notation)  ...

  6. openerp学习笔记 domain 增加扩展支持,例如支持 <field name="domain">[('type','=','get_user_ht_type()')]</field>

    示例代码1,ir_action_window.read : # -*- coding: utf-8 -*-from openerp.osv import fields,osv class res_us ...

  7. 将 Maven生成的java项目转化为支持 Eclipse IDE的项目

    转自: http://www.xuebuyuan.com/1297046.html 将 Maven生成的java项目转化为支持 Eclipse IDE的项目   在前一篇文章中,我们使用maven创建 ...

  8. 为OLED屏增加GUI支持

    为OLED屏增加GUI支持1:OLED驱动 为OLED屏增加GUI支持2:2D图形库 为OLED屏增加GUI支持3:字库 为OLED屏增加GUI支持4:文本框控件 为OLED屏增加GUI支持5:图片控 ...

  9. Nginx安装lua支持

    Nginx安装lua支持 需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module 1.下载安装LuaJIT-2.0.4.tar.gz wget -c ...

随机推荐

  1. codeforces div.1 A

    A. Efim and Strange Grade time limit per test 1 second memory limit per test 256 megabytes input sta ...

  2. Sina App Engine(SAE)入门教程(5)- SaeSegment(中文分词服务)使用

    分词能干什么? 提取一篇文章的关键字 检测特定的段落中有没有违禁词 智能机器人 …..尽你所想 开启SAE 分词服务 首先你需要在sae的管理面板开始分词服务后才能使用sae的服务.具体的开启操作: ...

  3. Winsock完成端口模型-Delphi代码

    原文出处 <Windows网络编程技术>第8章 完成端口模型 由于原书附的是C代码,我把其翻译成Delphi代码. 其中winsock2.pas在delphi中不带,要另外下载http:/ ...

  4. 开源入侵检测系统OSSEC搭建之三:Web界面安装

    注意:以下操作需在OSSEC服务端进行设置 一.下载analogi,存放于/var/www/html/下并赋予权限 [root@localhost ~]# wget https://github.co ...

  5. 一个zip压缩类,欢迎吐槽

    package com.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import j ...

  6. 奇怪的transform bug

    对一个元素使用transform:rotate 进行旋转,造成: 父元素的背景图位置偏移,往下降,背景图也会变模糊一些 造成重绘,导致该元素后面的兄弟元素受到影响,变得模糊,并且无法遮盖住父元素的背景 ...

  7. Maven基本操作命令

    1.mvn package 此命令包含一系列过程:validate-->compile-->test-->package Maven根据pom文件里packaging的配置,决定是生 ...

  8. 选择语句----switch case

    今天学习了选择语句的 switch case是多选一的情况可以使用. 案例: //分别输入月份 几号 输出是今年的多少天 //每年的1,3,5,7,8,10,12月是31天 //今年的2月是28天 其 ...

  9. hibernate--关联映射(多对一,一对一)

    多对一 关联映射 --- many-to-one 场景:用户和组:从用户角度来,多个用户属于一个组(多对一 关联) 使用hibernate开发的思路:先建立对象模型(领域模型),把实体抽取出来. 目前 ...

  10. Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读

    术语和概念  屏幕尺寸  屏幕的物理尺寸,以屏幕的对角线长度作为依据(比如 2.8寸, 3.5寸).  简而言之, Android把所有的屏幕尺寸简化为三大类:大,正常,和小.  程序可以针对这三种尺 ...