cocos2dx tolua传递参数分析

cocos2dx tolua传递参数分析

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

cocos2dx tolua传递参数分析:
tolua_Cocos2d_CCNode_addChild00  == void CCNode::addChild(CCNode *child)
tolua_Cocos2d_CCNode_addChild01  == void CCNode::addChild(CCNode *child, int zOrder)
tolua_Cocos2d_CCNode_addChild02  == void CCNode::addChild(CCNode *child, int zOrder, int tag)

上面是使用tolua把C++转到lua。上面三个分别相应不同的參数个数。

我们这里分析一下最后一个:/* method: addChild of class CCNode */#ifndef TOLUA_DISABLE_tolua_Cocos2d_CCNode_addChild02static int tolua_Cocos2d_CCNode_addChild02(lua_State* tolua_S){ tolua_Error tolua_err; //这里推断參数是否合法,仅仅能推断參数类型是否合法。假设參数类型检查不通过,就会报错 if ( !tolua_isusertype(tolua_S,1,"CCNode",0,&tolua_err) || !tolua_isusertype(tolua_S,2,"CCNode",0,&tolua_err) || !tolua_isnumber(tolua_S,3,0,&tolua_err) || !tolua_isnumber(tolua_S,4,0,&tolua_err) || !tolua_isnoobj(tolua_S,5,&tolua_err) ) goto tolua_lerror; else { //比如:middleBg:addChild(testSprite, Z_ORDER_1, 200) //我们传递进来的參数和以下的一一相应 //这里能够清楚的看到传入參数的次序,第一是middleBg ... CCNode* self = (CCNode*) tolua_tousertype(tolua_S,1,0); -- middleBg -- 1 CCNode* child = ((CCNode*) tolua_tousertype(tolua_S,2,0)); -- testSprite -- 2 int zOrder = ((int) tolua_tonumber(tolua_S,3,0)); -- Z_ORDER_1 -- 3 int tag = ((int) tolua_tonumber(tolua_S,4,0)); -- 200 -- 4#ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in function 'addChild'", NULL);#endif { //这里就把testSprite加到了middleBg self->addChild(child,zOrder,tag); } } return 0;tolua_lerror: return tolua_Cocos2d_CCNode_addChild01(tolua_S);}#endif //#ifndef TOLUA_DISABLE样例://middleBg:addChild(testSprite, Z_ORDER_1, 200) 在传递參数中,我们没有对Z_ORDER_1赋值,即为nil,则就//出现了以下的错误。看下这里argument #3 ,表明是第三个參数错误,而这里我们明明是第二个參数。看下上面的分析//我想大家应该明确了。通过这样的方法,我们以后查找这类问题。就会方便非常多。

03-31 10:09:50.499: D/cocos2d-x debug info(3169): LUA ERROR: [string "xxxxxxxxxxxxx..."]:171: error in function 'addChild'.03-31 10:09:50.499: D/cocos2d-x debug info(3169): argument #3 is 'nil'; '[no object]' expected.03-31 10:09:50.499: D/cocos2d-x debug info(3169): stack traceback:03-31 10:09:50.499: D/cocos2d-x debug info(3169): [C]: in function 'addChild'03-31 10:09:50.499: D/cocos2d-x debug info(3169): [string "xxxxxxxxxxxxx..."]:171: in function 'initMiddle'03-31 10:09:50.499: D/cocos2d-x debug info(3169): [string "xxxxxxxxxxxxx..."]:35: in function 'initUI'03-31 10:09:50.499: D/cocos2d-x debug info(3169): [string "xxxxxxxxxxxxx..."]:27: in function 'ctor'03-31 10:09:50.499: D/cocos2d-x debug info(3169): [string "xxxxxxxxxxxxx"]:34: in function 'create'03-31 10:09:50.499: D/cocos2d-x debug info(3169): [string "xxxxxxxxxxxxx"]:38: in function 'new'03-31 10:09:50.499: D/cocos2d-x debug info(3169): [string "xxxxxxxxxxxxx"]:44: in function 'pushScene'03-31 10:09:50.499: D/cocos2d-x debug info(3169): [string "xxxxxxxxxxxxx"]:309: in function 'callBack'03-31 10:09:50.499: D/cocos2d-x debug info(3169): [string "xxxxxxxxxxxxx"]:653: in function <[string "xxxxxxxxxxxxx"]:651>

版权声明:原创文章,转载请注明出处。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117191.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java中的cas(this关键字java)

    在JDK5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制

    2022年4月14日
    103
  • django 聚合函数_聚合函数和非聚合函数

    django 聚合函数_聚合函数和非聚合函数前言orm模型中的聚合函数跟MySQL中的聚合函数作用是一致的,也有像Sum、Avg、Count、Max、Min,接下来我们逐个介绍聚合函数所有的聚合函数都是放在django.db.models

    2022年7月29日
    6
  • Mac下用conda安装tensorflow

    Mac下用conda安装tensorflow1.下载并安装Anaconda。2.通过调用以下命令创建名为 tensorflow 的conda环境:$condacreate-ntensorflowpython=3.63.通过发出以下命令激活conda环境:     $sourceactivatetensorflow4.发出以下格式的命令以在conda环境中安装Tensor…

    2022年6月17日
    101
  • 图片下划线 html,HTML <U>下划线标签元素 HTML下划线标签「建议收藏」

    图片下划线 html,HTML <U>下划线标签元素 HTML下划线标签「建议收藏」为html字体下划线样式标签,即对文字实现下划线效果。一、认识html下划线标签U1、htmlU下划线标签语法:以开始,以结束。u标签不是单独一个标签,而是有开始有闭合的一对标签,使用时候切记勿忘记结束,完成一组u下划线标签使用。内容HTML结构语法分析图2、下划线u用法被加下划线HTML下划线U使用效果截图二、htmlU下划线标签使用小实例接下来CSS5对html下划线标签进行小小实…

    2022年6月4日
    38
  • nyaa镜像站 nyaa反向代理站「建议收藏」

    提供一个可以磁力转种子,并且资源中心里边是nyaa镜像站的网站:https://magnet-vip.com资源中心做了登录限定,防止无法访问!

    2022年4月7日
    960
  • windows pip 安装 whl文件

    windows pip 安装 whl文件在安装之前,一直比较迷惑究竟如何用,安装完后,发现竟然如此简单!首先我一般用的是python27,官网下载python27msi安装window764位后,已经自带了Pip和easy_install但是却不晓得如何安装whl目录,经过搜索后发现,把pip和easy_install加入到环境变量中,就可以便捷使用了。1、先找到python的安装目录,以及pip工具所在目录:2、将目录加入环境…

    2022年5月16日
    81

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号