矩形碰撞检测

碰撞检测 想法

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

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

分别判断四个角 如果

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

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

这个方法正确吗?

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

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

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

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

方法优化

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

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

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

没有碰撞

}else{

发生碰撞

}

这样是不是超级简单?

相关推荐
橙序员小站2 小时前
Agent Skill 是什么?一文讲透 Agent Skill 的设计与实现
前端·后端
炫饭第一名4 小时前
速通Canvas指北🦮——基础入门篇
前端·javascript·程序员
王晓枫4 小时前
flutter接入三方库运行报错:Error running pod install
前端·flutter
符方昊4 小时前
React 19 对比 React 16 新特性解析
前端·react.js
ssshooter4 小时前
又被 Safari 差异坑了:textContent 拿到的值居然没换行?
前端
曲折5 小时前
Cesium-气象要素PNG色斑图叠加
前端·cesium
Forever7_5 小时前
Electron 淘汰!新的桌面端框架 更强大、更轻量化
前端·vue.js
Angelial5 小时前
Vue3 嵌套路由 KeepAlive:动态缓存与反向配置方案
前端·vue.js
jiayu5 小时前
Angular学习笔记24:Angular 响应式表单 FormArray 与 FormGroup 相互嵌套
前端
jiayu5 小时前
Angular6学习笔记13:HTTP(3)
前端