矩形碰撞检测

碰撞检测 想法

两个矩形要发生碰撞 直接判断一个矩形的四个角在不在另外一个矩形中就可以

我们这么去约定变量(图中bottom 有拼写错误)

分别判断四个角 如果

xleft< x < xright && ybottom < y < ytop

判断四次 就可以判断是否发生碰撞

这个方法正确吗?

那你就完蛋了,只做这四个判断是不够的

四个角都在矩形外面 但是还是发生了碰撞

所以 还要判断一次 用这个被碰撞体 的一个角 (x2,y2)反过来还要判断一次 在不在碰撞体内才行。

这个方法是正确的但是太不够好用了

方法优化

如果 t1 < b2 也就是说 我的顶部都在你的底部下面 那么一定没有发生碰撞

所以 一定没有发生碰撞的条件可以写成

if(t1 < b2 || b1 > t2 || l1 > r2 || r1 <l2){

没有碰撞

}else{

发生碰撞

}

这样是不是超级简单?

相关推荐
零雲11 分钟前
Java面试:@Component和@Bean的区别是什么
java·开发语言·面试
闲云一鹤22 分钟前
Cesium 使用 Turf 实现坐标点移动(偏移)
前端·gis·cesium
Thomas游戏开发28 分钟前
Unity3D IL2CPP如何调用Burst
前端·后端·架构
想学后端的前端工程师37 分钟前
【微前端架构实战指南:从原理到落地】
前端·架构·状态模式
Jerry404_NotFound41 分钟前
工厂方法模式
java·开发语言·jvm·工厂方法模式
微风欲寻竹影43 分钟前
深入理解Java中的String
java·开发语言
用户6802659051191 小时前
如何利用 Endpoint Central 提高企业终端管理效率
javascript·后端·面试
代码or搬砖1 小时前
TransactionManager 详解、常见问题、解决方法
java·开发语言·spring
Keya1 小时前
DevEco Studio 使用技巧全面解析
前端·前端框架·harmonyos