问题标签 [collision-detection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
10913 浏览

3d - XNA 3d 物理引擎

我正在寻找 XNA 的 3D 物理引擎。我听说过一些选择,但我需要的是:

  • 免费用于商业目的(首选开源)
  • 支持刚体动力学
  • 支持每个多边形碰撞(这非常重要)
  • 托管代码 - 必须在 XBOX360 上工作

你用过这样的东西吗?你能推荐一些东西吗?

0 投票
2 回答
1076 浏览

algorithm - circle-AABB 遏制测试

我目前正在编写一个基于细分空间的系统(这是为了游戏),我需要能够测试一个圆圈是否完全包含一个正方形。

对于奖励积分,我应该指出我的系统在 N 维度上工作,所以如果你的算法通过循环遍历每个维度并做某事来工作,那么就这样呈现它;)

0 投票
1 回答
1106 浏览

c# - Control collision in winforms

i have an app here and i let the user drag link labels around on the form, but i need to be able to do stuff when the linklabel they are dragging around touches another control on the form. can anybody please point me in the right direction? or offer any suggestions/advice?

thanks lots jase

0 投票
2 回答
479 浏览

c# - C#:我如何判断哪一侧发生了碰撞?

我认为标题是不言自明的,但只是为了澄清我试图弄清楚如何判断碰撞发生在哪一侧。

对于更多细节,我正在尝试制作一个类似迷宫的游戏,所以我不能简单地在碰撞时停止所有运动。相反,我需要能够判断碰撞发生在哪一侧,这样我才能阻止那个方向。

任何帮助表示赞赏,如果有更好的方法来解决这个问题,我全力以赴。

我希望这是足够的详细信息,但如果您需要更多信息,请询问,我会进行编辑。提前致谢。

[编辑] @viggity - 不,我没有使用任何特定的游戏引擎,我会发布当前的“检测”代码,但它有点,荒谬,强大。

@Streklin - 我正在使用 this.Paint 事件来绘制表单本身,因为建议我首先这样做以更好地实时绘制。我还使用了一个位置,每次计时器根据我按下的内容(左、右、上、下)滴答作响时都会更新。是的,迷宫是基于瓷砖的。目前它甚至只包含 3 种颜色。我不是一个非常高级的程序员。

@Eric - 绝对是一维游戏。同样,我只有 3 种颜色,线条为黑色,背景为白色,正方形(用户)为绿色。我正在使用带有位图的 DrawImage() 在屏幕上绘图。

[编辑伪代码摘要]

foreach(Wall _wall in wall) if(player.intersectsWith(_wall)) 停止移动;

@JeffH - 我不太确定你在问什么,因为除了我用来尝试让它工作的测试代码之外,这几乎就是所有东西。我唯一遗漏的是 if 语句来检查它是否是 x 轴,以便 x 和 y 可以彼此独立移动。因此,您可以靠着墙壁滑动,而不是因为您碰到墙壁而“卡住”。我没有看到包含这一点的意义,因为问题发生在此之前。

0 投票
2 回答
1088 浏览

iphone - 2-D iPhone 游戏中基于图块的碰撞检测问题

设置:
我正在为 iPhone 开发基于 2-D 瓷砖的游戏(鸟瞰图)。该应用程序读入一个 tile-d (.tbx) tilemap 文件,该文件具有 true 或 false 的“blocked”属性,以表示英雄是否可以通过该图块。我遍历地图中的每个图块并创建一个表示图块行和列的二维 C 数组,以保存每个图块的阻塞属性(真/假)。当我全面移动英雄时,我会用数组检查英雄的位置,看看他移动的棋子是否被阻挡。如果被阻挡,英雄的位置会与前进时的位置相反。

问题:
问题是,当英雄踩到一块被阻挡的瓷砖时,他无法离开它。瓷砖位置是正确的,因为被阻挡的瓷砖被检测到它们应该在的位置,但英雄仍然被卡住。英雄“按像素”而不是“按图块”前进。这就是全部。剩下的就是显示代码:(Hero 大小为 28 像素 x 36 像素)

0 投票
1 回答
1631 浏览

opengl - 在复杂多边形中查找一个点

这个多边形的形状可以像 C

我尝试了位于此处的公式 如何确定 2D 点是否在多边形内?

但是它实际上并不能正确预测该点是否在多边形中。

0 投票
3 回答
1308 浏览

c# - 在线检测碰撞

如何在线检测碰撞,最好用鼠标点击?

我不使用 XNA。我只使用简单的 WinForms。而且我不是在创造游戏。

编辑:我从 brone 链接实现了解决方案,得到了非常奇怪的结果。这是小片段。我做错了什么?Pastebin 链接

0 投票
7 回答
29265 浏览

collision-detection - CRC32 碰撞

我试图找到两条消息之间的冲突,这将导致相同的 CRC 哈希。考虑到我正在使用 CRC32,有什么方法可以缩短我在进行蛮力攻击时必须尝试的可能消息列表?

任何带有此提示的网站链接都会有所帮助。我已经有一个蛮力算法可以做到这一点,但它只是增加整数并查看它是否会匹配其他哈希。

0 投票
1 回答
4406 浏览

animation - 球和砖碰撞处理

我制作了游戏“Breakout”。一个有趣的小项目。

现在,我通常不制作游戏,所以我通常不会考虑碰撞处理。

我有一个桨、一个球和一些砖块。

现在,当发生碰撞时(我在提到的每个对象周围绘制矩形),我只需将球的 Y 值更改为 -Y。

这很好用,除非球从侧面(东或西)击中砖块。副作用并不漂亮,并且破坏了游戏玩法。

我想我可以放心地假设,当这种情况发生时,我需要将 X 值更改为 -X 而不是上述技术。

到目前为止,我有:if (ballRect.IntersectsWith(brickRect))

ballRect并且brickRect是围绕每个对象的矩形。

现在,如果我在砖的东部边界、西部边界等周围创建一个矩形会怎样?我猜宽度大约是一个像素。

如果与西部或东部矩形发生碰撞,则球 X 值应为 -X。反之亦然。

但是角落呢?我应该随机选择哪个矩形来控制 x 角吗?

或者我应该在每个角周围做一个矩形?矩形的边长为 1*1。如果有碰撞 => -x AND -y 球的值?

请分享你的想法。

到目前为止的过程如下:

0 投票
5 回答
2110 浏览

iphone - iPhone Pong 碰撞检测

我有一个问题,如果球恰到好处地击中桨,它会被锁定在里面并且无法释放。它有时会发生在玩家的桨上,但由于您可以控制它,您所要做的就是移动它并逃脱。计算机完美地跟随球,所以一旦它进入它就永远无法逃脱,导致了这个视频中发生的事情。现在这只发生在我增加帧速率时,如果它真的很低,它有点错误并“通过”桨导致获得一分。至少在这种情况下,这不是一个明显的错误,并且游戏继续进行。

自然,我希望帧率尽可能平滑,所以......,想解决这个问题。这是我用于非常简单的碰撞检测的代码。使用 UIImageViews。

谢谢您的帮助。