lua教程七----解决( error in function ‘addChild’. argument #2 is ‘xx’; ‘CCNode’ expected. )异常报错
来源:互联网 发布:成都市广电网络分公司 编辑:程序博客网 时间:2024/06/10 04:58
本站文章均为 李华明Himi 原创,转载务必在明显处注明:(作者新浪微博: @李华明Himi )
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2dx/1289.html
☞ 点击订阅 ☜ 本博客最新动态!及时将最新博文通知您!
Him 的Cocos2dx-Lua群中有童鞋出现一个问题,问题是当他在Lua项目中利用Lua创建一个局部变量CCSprite或者CCLayer等CCNode,然后在其他的函数中通过其索引取出之前创建过的CCSprite或CCLayer等,取出后进行设置设置透明、坐标、缩放、runAction等大部分几率都出现无法正常缩放、透明等这些操作。群友尝试了很多方式,都没有解决掉。
其实对于此种问题很多刚接触Lua开发cocos2dx的开发者都很容易遇到,其实就是个强转的问题,例如:
在 cpp中利用getChildByTag 函数获取目标tag的ccnode:
CCSprite* sp = (CCSprite*)node->getChildByTag(x);
CCLayer* layer = (CCLayer*)node->getChildByTag(x)
在Lua中代码如下:
local sp
=
node:getChildByTag(x)
local layer
=
node:getChildByTag(x)
如上的代码一对比很多童鞋就看出来了,Lua形式的并没有强转类型!是的,就是因为没有强转造成。
还有一些童鞋该疑惑了“为什么cocos2dx引擎示例中就没有使用强转呢?”
原因是由于示例基本都是采用成员变量进行的,局部变量还是有强转的操作的。
那么Lua中强转一个类型函数如下:
tolua.cast(object,”CCSprite”)
第一个参数是需要强转的对象 , 第二个参数是强转的目标类型
例如我们将x 强转 CCSprite,则: tolua.cast(x,”CCSprite”)
quick-cocos2d-x 与 OpenQuick
OpenQuick:
OpenQuick 首页及下载地址: https://github.com/marmalade/OpenQuick
quick-cocos2d-x :
quick-cocos2d-x 首页及下载地址 : https://github.com/dualface/quick-cocos2d-x
简单的说: OpenQuick 与 quick-cocos2d-x 都是针对 2D游戏 基于 Lua 的免费开源框架,且都支持c2dx。
OpenQuick :主要是将所有的C2dx的类的基础上进行了再次封装成Q开头文件,开发者需在此基础上进行使用开发。
quick-cocos2d-x : 及时与cocos2dx版本匹配更新,另外它框架比较清晰,便于理解和使用。它所做的不是再次封装,然后尽可能契合cocos2dx,在此基础上做Lua的扩展。
Himi认为quick-cocos2d-x更适合一些,而且也是当前开发者使用居多的一款, 当然这大家可以更深入的去研究。
- lua教程七----解决( error in function ‘addChild’. argument #2 is ‘xx’; ‘CCNode’ expected. )异常报错
- 【COCOS2DX-LUA 脚本开发之七】解决( error in function ‘addChild’. argument #2 is ‘xx’; ‘CCNode’ expected. )异常报错
- 【COCOS2DX-LUA 脚本开发之七】解决( error in function ‘addChild’. argument #2 is ‘xx’; ‘CCNode’ expected. )异常报错
- 【COCOS2DX-LUA 脚本开发之七】解决( error in function ‘addChild’. argument #2 is ‘xx’; ‘CCNode’ expected. )异常报错
- 报错 argument #2 is 'nil' '[not function]' expected
- 报错 argument #3 is 'nil' 'number' expected
- Hive异常:UDFArgumentTypeException No argument is expected
- 解决Expected MultipartHttpServletRequest: is a MultipartResolver configured报错
- 解析linux patch(解决报错./stdio.h:456:1: error: 'gets' undeclared here (not in a function))
- Xcode解决“Implicit declaration of function 'XXX' is invalid in C99” 警告或报错
- iOS - 报错 Warning: Attempt to present <xx: xx> on <xx: xx> whose view is not in the window hierarchy!
- PHP扩展开发报错解决[error: ‘PHP_FE_END’ undeclared here (not in a function)] .
- Angular 出现Argument is not a function, got undefined报错
- Angularjs 报错 Argument 'MyController' is not a function, got undefined
- android自定义报错: error: No resource identifier found for attribute 'XX' in package 'XX’
- Ubuntu12.04系统下,解决"Django Error: That port is already in use."报错问题
- 解决报错 CodeSign error: code signing is required for product type Application in SDK iOS
- Unable to instantiate Action, XXXAction, defined for 'xx' in namespace 'xx'报错解决
- sqlldr 使用
- zTree取消节点的选中状态
- Spring学习–IOC容器
- PHP程序员最常犯的11个MySQL错误[转]
- java反射机制 及 Method.invoke,Class. getMethod()的使用
- lua教程七----解决( error in function ‘addChild’. argument #2 is ‘xx’; ‘CCNode’ expected. )异常报错
- 教你pdf转cad软件有哪些可以操作的!
- Myeclipse git常用操作
- JavaScript数据结构之--------栈(Stack)
- 一个简单的游戏服务器框架demo(源码已经放在GitHub)
- scss实践 webpack立方体
- 贪心算法几类区间覆盖问题总结
- Python接口测试—正则表达式获取参数
- JNDI数据源配置连接Oracle数据库