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++情何以堪啊!

  • 相关阅读:
    Windows2008R2安装DNS和SQLServer200r2服务 (9.18第七天)
    Windows2008R2安装iis和iis下搭建web服务器(9.18 第七天)
    Ubuntu 安装phpmyadmin (9.17第六天)
    Ubuntu Navicat链接mysql (9.17第六天)
    Spring之AOP由浅入深
    oracle并行模式(Parallel)
    转:Java后端面试自我学习
    Spring Security 简介
    spring boot入门
    git--分布式版本管理系统
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5074885.html
Copyright © 2011-2022 走看看