大家好,我正在用Java制作一个体素游戏,在研究我需要学习的所有不同内容时,我注意到很多游戏都使用AABB进行碰撞检测。然后我记得在Minecraft中也看到了AABB。但当我在谷歌上搜索什么是AABB时,它只会给出其他人的代码,或者历史书上的某个组织。Stackoverflow,什么是AABB?
轴对齐边界框
基本上,它是可以完全包含形状的最小长方体,通常由一对3d坐标定义。
检查两个AABB之间的碰撞非常快,因为您所需要做的就是检查拐角的X、Y和Z值的范围。
AABB代表“轴对齐的边界框”
这是一种在计算和内存方面都相当高效的表示体积的方法,通常用于查看两个对象是否接触。
因为它是轴对齐的,所以不一定能很好地“适合”真实的3D对象。AABB检查通常用作粗略的第一近似值,以查看对象是否可能发生碰撞。然后,如果AABB检查通过,将进行更详细的检查。
例子:
想象你的世界是2D的,你把它画在一张图纸上。你在世界上有一些物体(一个球,一棵树,随便什么)。要为其中一个对象制作AABB,您需要在对象周围绘制一个矩形,使您的线条与纸上的网格线平行。
如果你有两个物体的AABB,你可以做一些非常简单的数学来看看这些AABB是否重叠。如果它们不重叠,那两个对象就不可能接触,所以对于碰撞算法来说,这是一个很容易的早期解决方案。
这很容易推广到3D(以及更多的Ds)。
你可能想看看gamedev。斯塔克交换。我也是。
我使用libgdx为一个项目制作了一个2D游戏,我的碰撞检测技术基于。在矩形中重叠方法,效果良好。我想了解其背后的实现,如果我要将其与intersects方法并行,我知道它是如何工作的。但这是唯一的吗?我读到,在离散碰撞检测方法中,不仅需要计算实体是否发生碰撞,还需要计算它们发生碰撞的“程度”(碰撞深度),并使用轴对齐的边界盒算法将实体推回。首先,我对矩形重叠技术是否与libgdx中的AAAB相同
碰撞检测 现在你知道了如何制造种类繁多的图形对象,但是你能用他们做什么?一个有趣的事情是利用它制作一个简单的 碰撞检测系统 。你可以用一个叫做:hitTestRectangle 的自定义的函数来检测两个矩形精灵是否接触。 hitTestRectangle(spriteOne, spriteTwo) 如果它们重叠, hitTestRectangle 会返回 true。你可以用 hitTestRect
本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。 当试图判断两个物体之间是否有碰撞发生时,我们通常不使用物体本身的数据,因为这些物体常常会很复杂,这将导致碰撞检测变得很复杂。正因这一点,使用重叠在物体上的更简单的外形(通常有较简单明确的数学定义)来进行碰撞检测成为常用的方法。我们基于这些简单的外形来检测碰撞,这样代码会变得
我正在尝试做一个平台游戏,其中没有斜坡。我正在尝试将碰撞检测降下来,但是我在pygame中找不到一种方法来获得哪一边与另一个Sprite发生了碰撞。有没有人能给我一个好的方法来做到这一点,那不是太庞大,但也能很好地工作在我的情况? 下面是我的玩家类: 我已经将它添加到我的player类中,每次播放器更新时我都运行它,并且它工作...差一点。 在平台顶部的碰撞起作用,在侧面的碰撞几乎总是起作用,除非
问题内容: 有人可以帮我了解JS中冲突检测的工作原理吗?我不能使用jQuery或gameQuery-已经使用了原型- 因此,我正在寻找非常简单的东西。不要求完整的解决方案,只需为我指明正确的方向。 假设有: 现在球正在移动(任何方向)。“ Someobject”(0-X)已经预先定义,其中有20-60个随机放置,如下所示: 我可以创建一个位置为“ someobject(X)”的数组,并在“球”移动
我已经尝试添加冲突检测一段时间了,但似乎做不到... 要绘制地图,我只需使用x,y坐标: 使用这种方法,我想出了这种检测: 我一直在尝试使用for循环遍历树来检测玩家(一个矩形)是否穿过树,但我想不出任何东西。 我已经试过了 如果碰撞=true,player.update(碰撞)将矩形更改为红色,如果为false,将矩形变为黑色。 我已尝试使用for和if,例如: 等但这不起作用,它只适用于wit