注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

vs-yanguo的博客

 
 
 

日志

 
 
 
 

cocos2d 的精灵碰撞检测(转)  

2011-08-05 13:51:12|  分类: 碰撞检测 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 假设两个 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物体占的空间.两个空间相交则表示碰撞了.
现在 正在做的游戏中用到了.
  评论这张
 
阅读(771)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018