像素级碰撞检测

前几天做俄罗斯方块的时候碰到一个碰撞的问题,在AS中,碰撞的检测是给两个对象取其两顶点值作为两个正方形,来判断两个正方形是否有相交的区域,但是对于不规则的对象而言,这种碰撞是很不符合逻辑的。

那么,像素级碰撞检测,就是通过AS中自带的碰撞检测,再加上自己的逻辑算法来实现检测是否碰撞的,分为下面三个步骤:

1、通过AS自带碰撞检测两个对象是否碰撞到;
2、为两个对象的碰撞区域分别染色(假设为对象1和对象2,对象1染了绿色,对象2染了红色),并进行颜色的混合;
3、这个时候可以发现,碰撞区域有两种以上颜色(可能是两种,可能是三种,第三种是混合后的颜色),然后令对象1的绿色和对象2的红色去掉,那么通过代码检测碰撞区域是否还存在颜色,如果有,那一定是第三种混合后的颜色,那么这两个对象一定碰撞到了。

OK,废话不多说,下面是我的工程代码,里面还有一个学习编辑的对象池,但是后来被导师吐槽说实现不符合逻辑,还是挺心累的,如果有童鞋用的话,笑笑就过吧,真不是好的实现方法。


链接:https://pan.baidu.com/s/14ziqPuSltnHrkJt-uYaOqg
提取码:k3z4

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值