cocos2dx-3.1.1 labelttf与label

记录一下新踩的一个坑,使用cocos2dx-3.1.1的时候没有认真去阅读api文档,在需要使用文字的时候随便百度了一下,找到了一个labelttf,于是使用,踩到如下两个坑:

1.获取点击

举一个例子:在一个listener中,我们在判断触摸点是否在精灵上面时,采用的方式为:

it->getBoundingBox().containsPoint(t->getLocation())

其中it为精灵指针,t为listener的touch对象指针,通过这种方式就可以判断点击范围是否在精灵范围内。

但是上述的方法,对于labelttf是不生效的,需要采用如下方法:

it->getBoundingBox().containsPoint(e->getCurrentTarget()->convertToNodeSpace(t->getLocation()))

转换一下坐标,才能生效。当然也有其他方法,我只用过这一种。

2.响应监听

响应监听这个真是一个巨大的,目前我没找到解决方案的坑,也是后面放弃labelttf的主要原因。

我有一个应用场景是在一个layer中有多个labelttf,然后这些响应的listener操作都是一样的,于是我就给这个layer绑定了listener,但是labelttf神奇的没法响应这些操作,测试了一下,只有将listener跟labelttf绑定才能响应操作,甚是疑惑,如果换成这个layer里面的sprite,将listener绑定到layer上面,是可以响应到操作的。


好吧,说了labelttf的两个“坑”,现在就要说一下label了,主要是有一次编译的时候无意注意到了一个warning,说labelttf已经被弃用了,后面在网上查询了一下,说cocos2dx 3.x后都使用label了,于是尝试了一下,对于第一个坑,使用第一种通用方式就可以成功,不用进行恶心的转换,对于第二个坑,将listener绑定到layer上,这个layer里面的所有label都可以响应到操作,很好用,果断使用。哇咔咔!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值