像素级碰撞检测

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

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

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

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


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

你可能感兴趣的:(AS3,分支学习)