cocos2d-x 碰撞检测

假设两个 sprite, 每个的图片是缩放的, 而sprite 的上层节点也设置了缩放比例。 这个该怎么方便的进行碰撞检测?

取得屏幕的绝对坐标,和缩放后在屏幕上的size。 取得屏幕的绝对坐标好弄, 后面的计算size有些麻烦(因为有缩放系数),求教大家是怎么办的 ?
答案1:
其实缩放不缩放是一样的啊,如果粗略一些就计算这2个sprite的中心点距离,如果大于等于二者高度或者宽度之和的一半,则为已碰撞,如果想精确些那么要计算每个sprite的轮廓上每个角的坐标来比较!
答案2:
contentsize 是实际的大小。
或者采取画矩形相交判断,
圆形半径判断。
答案3:
CGRect projectileRect = CGRectMake(projectile.position.x ,        projectile.position.y ,    projectile.contentSize.width          projectile.contentSize.height );
CGRect targetRect = CGRectMake(target.position.x ,        target.position.y ,    target.contentSize.width,        target.contentSize.height);                   
if (CGRectIntersectsRect(projectileRect, targetRect)) {
                                碰撞了.                       
                                             

第一个代表rect是a物体在屏幕上占的空间.第二个rect是b物体占的空间.两个空间相交则表示碰撞了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值