我想写一个继承自COCOS中Node的类,cocos2dx_extra_luabinding.tolua的最后是这样写吗?
class MyClass : public cc.Node
{
public:
static MyClass* create();
virtual void setEnableDraw(bool value=true);
};
运行build.bat后,编译执行创建的类能够使用,显示的效果和node却不同,求指导。
我想写一个继承自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
不用客气,能解决问题就好,呵呵