中易网

quick 修改lua文件后怎么生效

答案:1  悬赏:50  
解决时间 2021-02-10 15:05
quick 修改lua文件后怎么生效
最佳答案
1 创建c++文件 MyClass.cpp MyClass.h 于 frameworks/runtime-src/Classes/tolua目录下
MyClass.cpp
#include "MyClass.h"

int MyClass::foo(int i)
{
return i + 100;
}

MyClass.h
#include "cocos2d.h"

using namespace cocos2d;

class MyClass : public Ref
{
public:
MyClass() {};
~MyClass() {};
bool init() { return true; };
CREATE_FUNC(MyClass);

int foo(int i);
};

2 编写.ini文件。在frameworks/cocos2d-x/tools/tolua/目录下能看到genbindings.py脚本和一大堆.ini文件,这些就是bindings-generator的实际执行环境了。随便找一个内容比较少的.ini文件,复制一份,重新命名为MyClass.ini。大部分内容都可以凑合不需要改,这里仅列出必须要改的重要部分:
[MyClass]
prefix = MyClass
target_namespace = my
headers = %(cocosdir)s/../runtime-src/Classes/tolua/MyClass.h
classes = MyClass

3 修改genbindings.py文件 129行附近,将MyClass.ini文件加进去:
frameworks/cocos2d-x/tools/tolua/genbindings.py
cmd_args = {'cocos2dx.ini' : ('cocos2d-x', 'lua_cocos2dx_auto'), \
'MyClass.ini' : ('MyClass', 'lua_MyClass_auto'), \
...

4 在控制台进入frameworks/cocos2d-x/tools/tolua/ 目录 ,运行genbindings.py
会在framework/cocos2d-x/cocos/scripting\lua-bindings\auto 目录下生成lua_MyClass_auto.cpp和lua_MyClass_auto.hpp两个文件将其复制到Classes/tolua目录下
5 修改AppDelegate.cpp
#include "../tolua/lua_MyClass_auto.hpp"
applicationDidFinishLaunching()函数中添加

LuaStack* stack1 = engine->getLuaStack();
register_all_MyClass(stack1->getLuaState());

6测试 在main.lua文件中
local test = my.MyClass:create()
print("lua bind: " .. test:foo(99)

已解决出现的问题
1.python缺少yaml库Cheetah库 安装easy_install 安装相应的库
2.python :ImportError …MAXREPEAT 提示
修改Python27\Lib下src_constants.py如下
MAGIC = 20031017

try:
from _sre import MAXREPEAT
except ImportError:
import _sre
_sre.MAXREPEAT = 65535
# SRE standard exception (access as sre.error)
# should this really be here?

class error(Exception):
pass

这样使用vs2012可以启动win程序但是如果使用Cocos Code Ide 的话要修改Android.mk文件将MyClass.cpp、lua_MyClass_auto.cpp添加到LOCAL_SRC_FILES :下
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
温姓,女孩,属蛇(阳历1989,11,19,11点30),木命
补血可以用什么来泡水喝
天猫贷款下来的金额可以提现吗
QQ炫舞里面什么歌有1000c
沈阳铁西保时捷中心辽宁同享宝时汽车销售服务
临沂觅果网怎么样,有知道的么
66666我很想问,我骗了魔蝎座的男人,开始和
自由神洗染玫瑰公馆店地址在什么地方,想过去
唐域佛珠和禅心阁的佛珠哪个好
NE如何防hum1本rush
九龙宾馆地址在什么地方,想过去办事
高一下半年 语文,数学,和英语,都应该学必
在数列{an}中,已知a1=1,an+1=2^n+1乘an/an+2^
出了车祸,我全责,我没有商业险,对方坚持要到4
瑙云乌拉沃博尔这个地址在什么地方,我要处理
推荐资讯
咖啡屋网咖怎么去啊,有知道地址的么
不花妆可以用卸妆水清洁皮肤吗?
西安未央区离城南近还是城西近
蜂蜜水的日饮用量是多少
魔兽世界求推荐几把蓝色系的法杖幻化用。
在校警校专科生能报专升本 报到中国刑事警察
笔记本左键的CTRL不能使用
成都富士康到底怎么样啊?
天娇瑜伽(巨川广场店)怎么去啊,有知道地址的
维斯德洗衣地址在哪,我要去那里办事
万达图文广告印务地址有知道的么?有点事想过
今天去应聘老板属羊 我属虎没聘上这和我们属
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?