问题标签 [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 投票
6 回答
39883 浏览

algorithm - 3D 碰撞/物体检测如何工作?

我一直想知道这一点。在像GTA这样有成千上万个对象的游戏中,游戏如何知道你是否在使用健康包?

每个对象不可能有一个事件监听器?迭代也不好?我只是想知道它实际上是如何完成的。

0 投票
2 回答
4263 浏览

algorithm - GJK 算法中的支持函数

我正在尝试实现 GJK 算法,但我立即卡住了。

问题是实现不是 O(n^2) 的支持函数。

因为现在我正在计算完整的 Minkowski 差异,然后执行 GJK 算法真的没有意义。(或者是吗?)

我所说的 Support-function 是指返回 Minkowski 差中在指定方向上最远的点的函数。我认为这不应该是 O(n^2) ,因为它在我当前的实现中。

0 投票
1 回答
1859 浏览

actionscript-3 - 四叉树检测不准确的碰撞

我正在尝试实现用于碰撞检测的矩形四叉树(而不是点)。

由于某种原因,并不总是检测到重叠/交叉/碰撞。我怀疑这与插入的对撞机查找附近对撞机的方式有关(参见 Quadtree.as 的“碰撞 A”和“碰撞 B”部分)。谁能确定为什么会发生这种情况?

下面是我的四叉树代码,以及其他几个类,当它们一起编译时,当我说“四叉树”“不准确”时,它们会告诉你我的意思。您只需要查看 Quadtree.as,但是将它与其他类一起编译应该可以帮助您理解我的问题。

谢谢!

四叉树.as:

主要作为:

测试对象.as:

对撞机.as:

TestCollider.as:

0 投票
2 回答
5045 浏览

iphone - 花栗鼠碰撞检测

我对花栗鼠完全陌生,我刚刚使用它几天,所以我猜这很明显,但是我找不到任何文档。花栗鼠中是否有任何回调或方法告诉您 2 个给定的形状发生了碰撞?

如果不是在精灵上简单地使用 cgrectcontains 的最佳方法?

-奥斯卡

0 投票
2 回答
351 浏览

iphone - 花栗鼠的速度条件碰撞?

我正在用 cocos2d 做一个游戏,并使用花栗鼠来管理物理。我想要实现的是几乎每一个任天堂游戏都可以让你的角色跳跃并停留在更高的楼层(碰撞形状)而不会引起碰撞,只要速度为正,而一旦速度为负,碰撞确实发生了。

基本上我想根据速度值来调节 2 个形状之间的碰撞。谁能指出我如何实现这一点的正确方向?谢谢你。

-奥斯卡

0 投票
2 回答
1244 浏览

collision-detection - 游戏编程中的精灵碰撞

当使用颜色 alpha 分量检测精灵之间的碰撞时,我应该在世界空间还是在视图(本地)空间中执行,哪个更优选?非常感谢任何与此类主题相关的链接或建议的书籍。

谢谢 :)

0 投票
3 回答
5564 浏览

collision-detection - 如何判断在 Scratch 中触摸了哪个边缘?

Scratch中,传感类别中有一个条件叫做touch,它可以有边缘作为参数。

鉴于条件返回 true,我如何判断触摸了哪个边缘(即场景的顶部、底部、左侧或右侧边缘)?

或者:如何判断场景的尺寸?我已经计算出位置 (x=0, y=0) 位于场景的中间。四个角点在哪里?

0 投票
2 回答
2111 浏览

2d - 在 2D 横向滚动条中实现 z 轴

我正在制作一个类似于 Castle Crashers 的侧滚轴,现在我正在使用 SAT 进行碰撞检测。这很好用,但我想通过允许对象在屏幕上上下移动来模拟关卡“深度”,基本上沿着 z 轴(如这个截图http://favoniangamers.files.wordpress.com/2009/07 /castle-crashers-ps3.jpg )。这不是等距游戏,而是使用视差滚动。

我将 az 组件添加到我的矢量类中,并且我计划根据形状的“厚度”和它的 z 位置来剔除碰撞。我只是不确定如何计算渲染形状的位置或如何添加重力跳跃。随着 z 位置的变化,如何计算最大 y 值(对于地面)?基本上是 z 轴和 y 轴的关系让我感到困惑。

如果有人知道此主题,我将不胜感激资源链接。

谢谢!

0 投票
2 回答
616 浏览

c++ - 简单的二维碰撞问题

我想找出静态球和移动球之间发生碰撞的时间,但是我提出的算法有时不会检测到碰撞并且移动球会穿过静态球。运动的球会受到重力的影响,而静止的球则不会。

这是我的碰撞检测代码:

这是调用碰撞检测的更新函数:

为什么没有在 100% 的情况下检测到碰撞?它仅在 70% 的病例中被发现。谢谢。

更新:当我将 FPS 从 30 更改为 10 时,问题似乎得到了解决。FPS 如何影响我的碰撞检测?

0 投票
2 回答
600 浏览

collision-detection - 游戏开发 - 处理与倾斜地形的碰撞

我试图弄清楚如何处理与试图在倾斜地形上移动的玩家的碰撞。例如,考虑如果玩家在半管底部并且想要向左走:

  • 起初玩家在平地上,可以直接向左走
  • 在某些时候,玩家开始上坡,因此需要向上和离开以保持在地形的顶部

我该如何处理?

  • 是否应该尝试将玩家直接向左移动,看看他们是否与地形相撞——如果他们已经解决了我是否应该轻推玩家的位置?
  • 我是否应该尝试弄清楚玩家左侧的地形是什么样的,并提前确定玩家应该放置在什么高度?