最近开发小游戏需要一个简单的碰撞检测,因为用的是自定义的Rect类,虽然这个判断方法很简单,但是百度看了很多人的写法代码量都相当的大。
当然搜到的结果都不是我想要的,于是只有自己写啦。两个矩形(不考虑旋转)相交大概就那么几种情况,如下图:
网上的算法要么就是判断顶点是否被包含,判断线段是否相交等等,这样做的不好的地方是要判断很多种情况。经过简单的分析我的方法如下图所示:
就是利用两个矩形中心点的距离去判断,如果两个矩形相交,他们的中心点的距离必然满足图中的两个条件。下面是代码:
/* 判断矩形是否相交 */
bool SelfRect::intersect(SelfRect * rect

本文介绍了在C++中如何简单地判断两个矩形是否相交,通过分析矩形中心点距离来实现,避免了复杂的情况判断。适用于小游戏的碰撞检测场景。
最低0.47元/天 解锁文章
2366

被折叠的 条评论
为什么被折叠?



