cocos2d-x quick 导出c++到Lua

来源:互联网 发布:佳能打印机扫描软件 编辑:程序博客网 时间:2024/05/29 10:55

原文地址:http://quick.cocoachina.com/?p=235


但是实际操作和作者有很多出处,发生了很多问题,以后肯定也会遇到别的问题,此篇做记录


MAC下遇到的问题:

1、sh build_luabinding.sh 指令报错
build_luabinding.sh: line 6: /bin/compile_luabinding.sh: No such file or directory



原因:$QUICK_COCOS2DX_ROOT路径没有找到,


换成自己的quick路径就可以了



2、

MyClass_luabinding.cpp 文件出错 :

MyClass_luabinding.cpp:41:4: error: use of undeclared identifier ‘MyClass’
MyClass::addTwoNumber(number1,number2);
^
1 error generated.

Use of undeclared identifier ‘MyClass’

原因:找不到‘MyClass’  引入头文件:#include"MyClass.h"


这里写下自己的操作步骤:

1、写h和cpp文件

MyClass.h文件:

#ifndef __MY_CLASS_H_

#define __MY_CLASS_H_


class MyClass

{

public:

   staticint addTwoNumber(int number1,int number2);

    

private:

    MyClass(void) {}

};


#endif// __MY_CLASS_H_



MyClass.cpp文件

#include "MyClass.h"

#include "cocos2d.h"


int MyClass::addTwoNumber(int number1,int number2){

    CCLOG("wade addTwoNumber");

    return (number1 + number2);

}


创建 MyClass_luabinding.tolua 文件,并修改内容为:

class MyClass : public CCObject{public:    static float addTwoNumber(float number1, float number2);};
创建build_luabinding.sh文件,内容如下:
#!/usr/bin/env bashDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"cd "$DIR"OUTPUT_DIR="$DIR"MAKE_LUABINDING="

/Users/mavericks/Documents/android/quick-cocos2d-x-2.2.1-rc/bin/

/compile_luabinding.sh$MAKE_LUABINDING -E MyClass -d "$OUTPUT_DIR" MyClass_luabinding.tolua
成功编译sh文件后,会生成MyClass_luabinding.cpp 和 MyClass_luabinding.h 文件



打开mac下的quick的xcode工程,然后将MyClass.h,MyClass.cpp,MyClass_luabinding.cpp 和 MyClass_luabinding.h加入到工程中的sources目录下



在 AppDelegate.cpp 头部区域添加:

#include"MyClass_luabinding.h"


applicationDidFinishLaunching方法中加入


经过上述修改后,重新编译运行项目应该就可以在 Lua 脚本中使用我们导出的 MyClass 对象极其方法了。


我们打开quick/player/welcome/scripts/scenes/WelcomeScene.lua

然后找到ctor方法,添加如下:

local num1 = 2
local num2 = 3
local num3 = MyClass:addTwoNumber(num1,num2)
print("wade:num:"..num3)


如果能正常输出,则证明编译成功了。


0 0
原创粉丝点击