矩形碰撞检测

碰撞检测 想法

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

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

分别判断四个角 如果

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

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

这个方法正确吗?

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

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

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

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

方法优化

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

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

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

没有碰撞

}else{

发生碰撞

}

这样是不是超级简单?

相关推荐
Duang007_几秒前
【万字学习总结】API设计与接口开发实战指南
开发语言·javascript·人工智能·python·学习
一叶星殇3 分钟前
C# .NET 如何解决跨域(CORS)
开发语言·前端·c#·.net
Elieal3 分钟前
Java项目密码加密实现详解
java·开发语言
运筹vivo@5 分钟前
攻防世界: catcat-new
前端·web安全·php
shhpeng5 分钟前
go mod vendor命令详解
开发语言·后端·golang
Java程序员威哥6 分钟前
用Java玩转机器学习:协同过滤算法实战(比Python快3倍的工程实现)
java·开发语言·后端·python·算法·spring·机器学习
GeekyGuru7 分钟前
C++跨平台开发的核心挑战与应对策略
开发语言·c++
阿雄不会写代码9 分钟前
Let‘s Encrypt HTTPS 证书配置指南
前端·chrome
Howrun77714 分钟前
信号量(Semaphore)
开发语言·c++·算法
leaves falling14 分钟前
c语言-动态内存管理
c语言·开发语言