矩形碰撞检测

碰撞检测 想法

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

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

分别判断四个角 如果

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

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

这个方法正确吗?

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

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

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

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

方法优化

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

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

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

没有碰撞

}else{

发生碰撞

}

这样是不是超级简单?

相关推荐
kft13142 分钟前
XSS深度剖析:从弹窗到持久化窃取Cookie
前端·web安全·xss·安全测试
烬羽6 分钟前
《前端三权分立:HTML、CSS、JS为什么不能“乱搞”》
前端
恋爱脑11 分钟前
vue自定义指令封装-是否点击当前元素以外区域
前端
Matlab程序猿小助手12 分钟前
【MATLAB源码-第319期】基于matlab的帝王蝶优化算法(MBO)无人机三维路径规划,输出做短路径图和适应度曲线.
开发语言·算法·matlab
码点滴15 分钟前
CRI-O选型与容器运行时标准
开发语言·人工智能·架构·kubernetes·cri-o
回眸&啤酒鸭16 分钟前
【回眸】嵌入式软件单元测试工具链实战指南
开发语言·单元测试·白盒测试
彦为君18 分钟前
JavaSE-10-并发编程(11个案例)
java·开发语言·python·ai·nio
石山代码19 分钟前
java前景
java·开发语言
10岁的博客21 分钟前
C++ 进制转换:通用 a 进制转 b 进制(2-36进制)题解
开发语言·c++
川冰ICE21 分钟前
TypeScript装饰器与元编程实战
前端·javascript·typescript