碰撞检测 想法

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

我们这么去约定变量(图中bottom 有拼写错误)
分别判断四个角 如果
xleft< x < xright && ybottom < y < ytop
判断四次 就可以判断是否发生碰撞
这个方法正确吗?
那你就完蛋了,只做这四个判断是不够的
四个角都在矩形外面 但是还是发生了碰撞
所以 还要判断一次 用这个被碰撞体 的一个角 (x2,y2)反过来还要判断一次 在不在碰撞体内才行。
这个方法是正确的但是太不够好用了
方法优化

如果 t1 < b2 也就是说 我的顶部都在你的底部下面 那么一定没有发生碰撞
所以 一定没有发生碰撞的条件可以写成
if(t1 < b2 || b1 > t2 || l1 > r2 || r1 <l2){
没有碰撞
}else{
发生碰撞
}
这样是不是超级简单?