zoukankan      html  css  js  c++  java
  • [cocos2dx笔记008]cocos2d 用luabridge手动绑定类

    基于cocos2dx 2.2.2版本号。这几天使用了cocostudio实现了,动画。骨骼动画。UI编辑。粒子效果,尽管有些不足,但已经算是很好了。今天尝试用lua。这个很easy。创建的时候。设置语言为lua。那就能够创建luaproject。
    在cocos2d-x-2.2.2 oolsproject-creator下执行:
    python create_project.py -project test_lua -package com.android.zdhsoft -language lua
    xcopy ....cocos2dxplatformandroidjavasrc* ....projects est_luaproj.androidsrc /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++情何以堪啊!

  • 相关阅读:
    office 365 激活
    jdk 的 安装以及环境变量配置
    eclipse 创建maven项目失败
    一千行mysql笔记
    mysql 之 清空表中数据
    java 之 servlet
    java 之 javaBean
    java 之 jsp详解
    java 之 jsp tomcat启动失败问题
    npm install, npm install -g, npm install --save, npm install --save-dev之间的区别
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5074885.html
Copyright © 2011-2022 走看看