cocos2d 3.0初学碰到的几个新问题

在cocos2d 3.0中,初学者遇到`attempt to call method ‘containsPoint’ (a nil value)`和`attempt to compare nil with number`的问题。解决方案包括使用`cc:rectContainsPoint(rect, point)`替代`containsPoint`,以及注意ccp()已被弃用,应使用cc.p。当调用`cc:rectContainsPoint()`出现错误时,可以自定义方法作为替代。" 123657042,12797131,JMeter高并发性能测试与同步定时器应用,"['性能测试', 'JMeter工具', '并发', '测试框架']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、attempt to call method ‘xxxx’ (a nil value)

在对一个layer进行触摸事件监听的时候,发现一个问题,判断触控点是不是在某个rect范围内的时候,发现调用原来的那个什么rect:containsPoint(point)方法会报异常attempt to call method ‘containsPoint’ (a nil value),然后我就在网上搜了一下,发现答案各异,后来经过验证有一个答案比较靠谱:原来是tolua生成的接口文件里没开放这个方法接口。去整个项目里面用文件搜索方法搜索了一下containsPoint这个字符串,在cc.lua里面发现了这么一rectContainsPoint方法,我就终于明白了,确实是原来的方法没了,3.0的把原来containsPoint方法换成了cc:rectContainsPoint(rect, point)方法了

2、attempt to compare nil with number

项目中用到原来的ccp(x,y)方法获得point,运行的时候cocosIDE会提示说该方法已经弃用,换成新的cc.p,注意这里就有一个坑,其实应该是cc:p,当然现在触摸事件监听方法传递参数的过程中有个touch,可以获得location,这个也就是一个point。好了,现在开始说这第二个错误提示如何产生的又如何解决,我在调用1中的cc:rectContainsPoint(rect, point)方法之后,就会提示这么一个信息,本来我也以为是传参进去有空数据,后来把两个参数的属性全部输出仍然没有nil数据输出,所以就这么样,这个接口用不了了,后来就自己建了一个lua文件,里面定义了一个同样的方法,然后用我自定义的方法去替换cc:rectContainsPoint(),成功了。至于为什么会出现cc:rectContainsPoint不能用我也不清楚,如果有大神能够帮我解答一下我会很感激,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值