像素级碰撞检测

本文介绍了一种像素级碰撞检测方法,通过AS自带的碰撞检测结合自定义逻辑算法,实现更精确的游戏对象碰撞检测。方法分为三步:初步碰撞检测、碰撞区域染色及颜色混合、检测混合颜色确定碰撞。文中分享了具体实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值