关于quick/lib/extra/luabinding的问题

我想写一个继承自COCOS中Node的类,cocos2dx_extra_luabinding.tolua的最后是这样写吗?

class MyClass : public cc.Node
{
public:
static MyClass* create();
virtual void setEnableDraw(bool value=true);
};
运行build.bat后,编译执行创建的类能够使用,显示的效果和node却不同,求指导。

setEnableDraw这个函数去掉virtual,而且不支持默认参数

难道是我绑定的方式不对吗?lua中能用新加的类,但是我什么功能都不加,和用display.newNode()创建的node显示的完全不同。

那个函数我临时写的,没用,只用了create

我去掉这个函数也是不行

先谢谢您这么及时的回复!

我用这两种方式创建node
local cnode = cc.MyClass:create()
local cnode =display.newNode()
然后处理相同,显示却不同

绑定后有什么问题?“和用display.newNode()创建的node显示的完全不同”—有什么不同呢?

这是用MyClass创建的node添加节点后的形状,挤在了一起,而display.newNode()创建的显示正常

如上图,谢谢了

我定义新类的目的是为了重写Node类的visit函数,上面是重写前的测试,已经不对了

把自动生成的绑定代码发出来我看一下呢

这是create的,我新类名称ScrollViewContent,新类只写了create静态函数,没别的函数了

static int tolua_cocos2dx_extra_luabinding_ScrollViewContent_create00(lua_State* tolua_S)
{
#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
if (!tolua_isusertable(tolua_S,1,“ScrollViewContent”,0,&tolua_err) ||!tolua_isnoobj(tolua_S,2,&tolua_err))
goto tolua_lerror;
else
#endif
{
{
ScrollViewContent* tolua_ret = (ScrollViewContent*) ScrollViewContent::create();
tolua_pushusertype(tolua_S,(void*)tolua_ret,“ScrollViewContent”);
}
}
return 1;
#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S,"#ferror in function ‘create’.",&tolua_err);
return 0;
#endif
}

这是绑定那块的

tolua_endmodule(tolua_S);
tolua_cclass(tolua_S,“ScrollViewContent”,“ScrollViewContent”,“cc.Node”,NULL);
tolua_beginmodule(tolua_S,“ScrollViewContent”);
tolua_function(tolua_S,“create”,tolua_cocos2dx_extra_luabinding_ScrollViewContent_create00);
tolua_endmodule(tolua_S);
tolua_endmodule(tolua_S);
return 1;

从绑定代码上看是正常继承了的。Lua代码方面,调用了哪些接口呢?

首先真的很感谢您能这么耐心的帮我!
lua中的调用:local cnode = cc.ScrollViewContent:create() 显示如8楼
若改成这样调用:local cnode = display.newNode() 显示是正常的,位置也是正常的,sorry这里不方便贴正常的图

创建节点后,就只是用addChild添加精灵吗?是否调用了对齐之类的api?还是直接设置精灵的位置?

有addchild 和 位置设定的调用setPosition,没有对齐类的api,真的麻烦您了,我创建个hello world测试下先

您好!阳光七月,真的很感谢你,我用hello world测试了一下,用新类和display.newNode创建的类相同,不过项目中用两者就是不同,可能是我项目中布局的关系吧,可能隐藏着冲突,我再好好查一下。真的很感谢您!另外感谢quick 把luabinding做的越来越简单了。下面一个关于luabinding的链接,希望能帮助有需要的
http://cn.cocos2d-x.org/tutorial/show?id=513

不用客气,能解决问题就好,呵呵