Questions tagged «collision-detection»

碰撞检测是确定两个或多个实体在游戏过程中是否相互接触。

2
AABB碰撞造成的平台跳跃问题
首先参见图: 当我的AABB物理引擎解析交点时,它会通过找到穿透较小的轴来实现,然后“推出”该轴上的实体。 考虑“向左跳转”示例: 如果力度X大于力度Y,AABB将实体沿Y轴推出,从而有效地停止跳跃(结果:玩家停在半空中)。 如果VelocityX小于velocitY(未在图中显示),则程序将按预期运行,因为AABB将实体沿X轴推出。 我怎么解决这个问题? 源代码: public void Update() { Position += Velocity; Velocity += World.Gravity; List<SSSPBody> toCheck = World.SpatialHash.GetNearbyItems(this); for (int i = 0; i < toCheck.Count; i++) { SSSPBody body = toCheck[i]; body.Test.Color = Color.White; if (body != this && body.Static) { float left = (body.CornerMin.X - …

1
如何创建逼真的2D角色扮演游戏碰撞检测?
我一直想创建一个老式的2D角色扮演游戏,例如《星际海洋》,《最终幻想》,《魔力之剑》,甚至“故事集”系列,我想很多人都会这么做。但是,甚至在只编写一行代码之前,我就进行了大量研究,绘图和试用。 我已经找到了问题的几乎所有答案,但是有一个我无法解决的问题:如何像我之前命名的游戏中那样创建逼真的但简单的碰撞检测? 我已经知道几种计算碰撞检测的方法,请看以下示例: 这些都不满足我的需求。 基于图块的碰撞太简单了,更适合Zelda而不是Star Ocean。另外,每个图块的图形都需要填充所有空间才能看起来逼真。 完美像素有太多限制。如果您的图块到处都有像素,则玩家很可能会卡在茫茫荒野中(即:在某些游戏中,您会卡在宽度为2像素的树根上)。 而且二进制掩码会占用过多的内存和imo设置。 我已经阅读了很多文档,但从未发现对我而言看起来不错的东西。而且我所有的试玩看起来都不像我以前玩过的那样。因此,如果您有任何有关2D RPG的工作原理的良好链接或教程,请告诉我。

4
使用无干扰的碰撞避免(转向)时,运动对象发生碰撞
我无法避免未避免的碰撞,我认为这是一种罕见的情况。我将两个对象设置为彼此相对,但有一点偏移,因此其中一个对象稍微向上移动,而其中一个对象稍微向下移动。 在我未对齐的防撞转向算法中,我在两条直线最接近的物体的正线上和另一个物体的正线上找到了点。如果这些最接近的点在避免碰撞的距离内,并且它们之间的距离小于两个对象的边界球的两个半径,则对象应沿适当的方向转向。 问题在于,对于我而言,计算得出的直线上最接近的点实际上与实际的碰撞点相距甚远。这是因为随着对象的通过,每个对象的两条前向线彼此远离。问题在于,因此,没有进行转向,并且两个对象部分碰撞。 有人对我如何正确计算碰撞点有任何建议吗?也许通过某种方式考虑到两个对象的大小?

2
模拟漂浮在水面上的物体
我正在研究自上而下的钓鱼游戏。我想对绕湖运动的船实施一些物理和碰撞检测。我希望能够实现来自主电动机或拖曳电动机的推力,风对物体的影响以及水对物体的阻力。 我一直在研究Farseer物理引擎,但是没有使用物理引擎的经验,因此我不确定Farseer是否适合此类应用(大多数演示似乎都是将重力应用于垂直方向)。顶部/底部型号)。 Farseer引擎合适吗?还是其他引擎更合适?

2
二维对象对齐包围盒相交测试
我有两个与对象对齐的边界框(即未与轴对齐,它们随对象一起旋转)。我想知道两个对象对齐的框是否重叠。(编辑:注意-我使用的是轴对齐的边界框测试来快速丢弃远处的对象,因此,quad例程是否稍慢一点都没有关系。) 我的盒子存储为四个x,y点。我一直在寻找答案,但是我无法理解示例中的变量名和算法以将其应用于我的特定情况。 有人可以帮助我以简单明了的方式告诉我如何进行吗?谢谢。(特定的语言并不重要,可以使用C样式的伪代码。)


3
连接具有不同坐标系的物理模拟
我希望对象在两个物理模拟之间通过“窗口”移动,并在两个物体与窗口平面相交的情况下与两个模拟碰撞。 模拟的坐标系不具有相同的原点,并且可能具有不同的方向。将模拟本身包装起来不是必需的,但是会更好。 如何在不克隆单个对象的情况下有效地连接系统? 编辑: 计算应尽可能准确,这样,如果对象同时从相反的方向穿过窗口,则不会卡住。

3
赛车AI行为模式
假设您有一个基于样条的赛车AI。假设它已经可以处理围绕轨道的制动和转向的基本知识。 您将如何组织和实施避免碰撞,超车,起草,阻止和其他行为的方式,以使您的赛车保持竞争力,同时进行有趣的比赛? 与论文/实施的链接非常棒。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.