基于cocos2dx 2.2.2版本号。这几天使用了cocostudio实现了,动画。骨骼动画。UI编辑。粒子效果,尽管有些不足,但已经算是很好了。今天尝试用lua。这个很easy。创建的时候。设置语言为lua。那就能够创建luaproject。

在cocos2d-x-2.2.2\tools\project-creator下执行:

python create_project.py -project test_lua -package com.android.zdhsoft -language lua
xcopy ..\..\cocos2dx\platform\android\java\src\* ..\..\projects\test_lua\proj.android\src /E

就能够创建test_lua,就能够顺利跑起来。

可是我有些代码是C++的,想到在lua下用,感认为用cocos2dx自带的tolua++。会影响现有的Cocos2dx框架。也可能带来潜在的风险。(除了,bug,我一般不乐意改动框架的东西)。并且须要手动绑定的也不多。于是找了几个开源的绑定框架。有luabind,luatinker,ELuna,luabridge,等。luabind须要boost库,这个太头痛了,luatinker,eluna在试用过程都有些问题(有一个不支持派生类和模板)。尽管这两个是最简单的,可是功能也弱了些。最后,用luabridge顺利解决,使用起来也很easy。

以下是下载地址:https://github.com/vinniefalco/LuaBridge

个版本号已经支持lua 5.1.5,只是不支持C++0x11,样例非常丰富。这里有非常多样例,http://vinniefalco.com/LuaBridge/Manual.html

载后,直接解压。把LuaBridge.h,RefCountedObject.h。RefCountedPtr.h和detail下的所有头文件。所有拷贝到classes文件夹。然后在AppDelegate包括luabrigde.h就能够了。

以下是一个用于測试的类

class testA

{

public:

    testA()

    {



    }

    int getValue()

    {

        return 100;

    }

};

以下是绑定代码

    luabridge::getGlobalNamespace(pEngine->getLuaStack()->getLuaState())

        .beginClass<testA>("testA")

        .addConstructor<void(*) ()>()

        .addFunction("getValue", &testA::getValue)

        .endClass();

然后,就能够在你的lua代码使用这个类了。

    local testa = testA ()

    cclog("testa=%d", testa:getValue()) 

如今cocos2dx上面,如今出现了两个重要的lua分支, 一个是quickx,一个cocos-code-ide。quickx提供了一个很强大的lua框架,让你写lua省心省力。

而cocos ide则基于eclipse提供了一个x-man的编辑器,支持lua和js调试。

这让C++情何以堪啊!

[cocos2dx笔记008]cocos2d 用luabridge手动绑定类的更多相关文章

  1. [cocos2dx笔记012]一定简易的UI配置类

    使用cocostudio能够装载编辑好的UI,可是过于复杂.特别是在加截UI后,发现触屏事件有些问题. 假设直接使用程序写死载入UI又过于麻烦.花点时间,添加了一个基于ini的UI配置类,眼下仅仅实现 ...

  2. cocos2dx lua 绑定之二:手动绑定自定义类中的函数

    cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一 ...

  3. cocos2dx——lua自己主动和手动绑定

    [自己主动绑定] 參考:http://my.oschina.net/skyhacker2/blog/298397 主要是通过引擎自带的tools/tolua,主要过程例如以下: 1.编写好要导出的c+ ...

  4. [cocos2dx笔记004] android添加�静态库project

    (基于2.2.2版本号) 这步比較麻烦,不像vs2013那样好设置.參考了非常多文章.还是不能解决这个问题.仅仅有慢慢摸索了.在这里贴出来,希望能让大家能少走点弯路. 还是其于前面的文章提到的myli ...

  5. jQuery学习笔记之DOM操作、事件绑定(2)

    jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...

  6. CAS学习笔记五:SpringBoot自动/手动配置方式集成CAS单点登出

    本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成C ...

  7. SpringMVC form:form的一个错误(没有传到前台绑定类)

    SpringMVC form:form的一个错误(没有传到前台绑定类) 报错信息: Neither BindingResult nor plain target object for bean nam ...

  8. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  9. Django商城项目笔记No.3用户部分-用户模型类

    Django商城项目笔记No.3用户部分-用户模型类 Django提供了认证系统,文档资料https://yiyibooks.cn/xx/Django_1.11.6/topics/auth/index ...

随机推荐

  1. SilkTest Q&A 3

    Q21:如何给testcase的属性赋值? A21: 1.确定你的testplan处于打开状态. 2.点击你准备赋属性值的testcase 3.点击TestPlan/detail菜单,testplan ...

  2. 在Ubuntu Desktop打开终端的2种方式

    共有3中方法: 1.在Ubuntu左上角选择File/Open in Terminal 2.快捷键alt+F2调出Run a Command,输入gnome-terminal 添加右键支持 在终端,输 ...

  3. Delphi 的绘图功能(29篇博客)

    http://www.cnblogs.com/del/category/123038.html

  4. [C++]C++中的运行时类型检测

    Date:2014-1-3 Summary: 使用C++中的运行时类型检测.(文章重点在于记录本人的使用情况,并非深层讨论RTTI) Contents:写习惯C#的我,在C++依然存在哪些.NET的惯 ...

  5. SuSE(SLES)安装配置syslog-ng日志server,可整合splunk

    Update History 2014年04月25日 - 撰写初稿 引言 在自己主动化部署AutoYast.自己主动化监控BMC Patrol双方面形成雏形后.日志的收集.管理.分析也顺势成为我们须要 ...

  6. 图片本地预览 flash html5

    dataURI 一种能够在页面嵌入外部资源的URI方案.能够降低图片或者样式表的http请求数量,提高效率. ie8把dataURI 的属性值限制在32k以内. 图片本地预览: 由于安全原因,通过fi ...

  7. python语言学习6——python基础

    Python是一种计算机编程语言. 以#开头的语句是注释,注释是给人看的,可以是任意内容 其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块. Python程序是大小写敏感的,如果写错 ...

  8. 【ASP.NET】验证控件

    在软件开发中,验证输入信息是否正确,这是不可缺少的一项工作.就拿我们做过的机房收费系统来说,在登录的时候,我们须要对username和用户password进行验证.推断是否为空,推断输入字符是否合理等 ...

  9. PropertiesDemo

    import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configurat ...

  10. hdu 4747【线段树-成段更新】.cpp

    题意: 给出一个有n个数的数列,并定义mex(l, r)表示数列中第l个元素到第r个元素中第一个没有出现的最小非负整数. 求出这个数列中所有mex的值. 思路: 可以看出对于一个数列,mex(r, r ...