问题标签 [collision]

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 投票
7 回答
7171 浏览

collision - 将球从表面弹起

我目前正在编写一个像 Breakout 这样的游戏,我想知道如何正确地将球从表面反弹。

我采用了将速度旋转 90 度的简单方法,即:

哪个(不出所料)效果不佳。如果我知道球的位置和速度,以及球会击中的点(但会反弹),我怎么能从那个点反弹呢?

约束:

  • 我正在使用整数数学(任何地方都没有 FP)
  • 我所有的表面都是简单的平面(垂直、水平或块状)
  • 我只想以 90 度角反弹
  • 所有碰撞都是纯弹性的(这是突破——不需要摩擦等)

我不需要任何语言特定的代码。如果有人可以提供一个关于如何正确执行此操作的小型数学公式,那么这对我来说很好。

谢谢!

0 投票
1 回答
383 浏览

objective-c - 限制 touchesmoved 物体与墙壁碰撞?

我正在尝试创建一个非常简单的游戏,您可以在其中拖动一个简单的 imageView。问题是框​​架中有一面墙(只是一个矩形),图像不应该放在上面。所以我做了这样的事情:

但问题是图像确实超出了它的界限,然后卡在那里并且touchesmoved结束了。

所以我添加了这个:

但这使得图像在与“墙”相交时开始闪烁并最终卡在那里。

我觉得必须有一个简单的方法来做到这一点。谁能启发我?

0 投票
8 回答
3140 浏览

xna - 二维游戏中的表面检测?

我正在开发一个 2D 平台游戏,我想知道实现表面(碰撞)检测的最佳(性能方面)方法是什么。

到目前为止,我正在考虑构建一个由线条列表构成的关卡对象列表,并沿着线条绘制瓷砖。

替代文字 http://img375.imageshack.us/img375/1704/lines.png

我认为每个对象都保存着他行走的表面的 ID,以便在上坡/下坡时轻松操纵他的 y 位置。

像这样的东西:

因此,我用来检测“在表面上掉落/行走”的逻辑是一个简单的点(玩家的小腿)-接触线(表面)检查(具有一些安全近似值 - 假设在线上 1-2 个像素)。

这种方法可以吗?我一直很难找到有关此问题的阅读材料,因此请随时删除链接/建议。

0 投票
7 回答
52991 浏览

math - 假设 GUID 始终是唯一的是否安全?

我知道发生冲突的可能性很小,但是如果我生成了一批 1000 个 GUID(例如),是否可以安全地假设它们都是唯一的以保存对每个 GUID 的测试?

奖金问题

测试 GUID 唯一性的最佳方法?布隆过滤器可能吗?

0 投票
4 回答
2195 浏览

c# - 这会导致多个相同的 GUID 吗?

由于 GUID 生成是时间相关的,如果 System.Guid.NewGuid() 在不同线程的同一时刻被多次调用,它会返回相同的 GUID 吗?

0 投票
2 回答
3025 浏览

physics - 从另一个圆圈反射一个圆圈

使用 iPhone 和 Objective C。

我正在开发一款游戏,我需要正确地将球从圆形物体上反射出来。我正在尝试将其作为线和圆的交叉点。我的球位置在圆圈外,并且在下一次平局更新时,我的新球位置将在圆圈内。我知道线(球道)和圆的交点。现在我想围绕交点旋转球路径的终点,以获得正确的切线反射角。

以下是已知的:

  • 球电流 x,y
  • 球端 x,y
  • 球半径
  • 圆心 x,y
  • 圆半径
  • 球轨迹与圆 x 和 y 的交点

我知道我需要找到切线和入射球路径之间的入射角,这也将等于我的反射角。我想一旦我知道这两个角度,我就可以从 180 中减去它们以获得我的旋转角度,然后将我的终点围绕相交角度旋转那个量。我只是不知道怎么做。

0 投票
2 回答
327 浏览

unix - Unix目录结构:管理文件名冲突

通常每次运行 `make install' 时,文件都不会放在像 /usr/prog1 这样的特定目录中。相反,这些文件被放置在其他程序的文件已经在其中的目录中,例如 /usr/lib 和 /usr/bin。我相信这是很久以前的一种普遍做法。这种做法肯定会增加文件名冲突的可能性。

由于我的谷歌搜索没有对此事进行很好的讨论,我想知道人们如何管理文件名冲突?他们是否只是简单地尝试这个或那个名称,如果出现问题,用户会提交一个错误,而开发人员会选择另一个名称?或者,他们只是简单地为文件名添加前缀吗?有人知道关于这个问题的很好的讨论吗?

0 投票
2 回答
526 浏览

iphone - 检查花栗鼠物理中的碰撞速度

我正在使用带有 Cocos2D 的 iPhone 版 Chipmunk 5。在两个特定对象之间发生碰撞时,我想运行一个方法来检查该碰撞的速度,如果超过 x 则运行一组代码,如果低于 x 则运行另一组代码。

现在,我了解了基础知识,但我无法计算出运行碰撞检测方法的代码以及检查冲击速度的代码。

任何帮助或指示将不胜感激。

干杯。

0 投票
4 回答
4167 浏览

actionscript-3 - Actionscript 3像素完美碰撞。如何?(学习目的)

我知道有人为此创建类(即http://coreyoneil.com/portfolio/index.php?project=5)。但我想学习如何自己做,这样我就可以按照我需要的方式创造我需要的一切。

我读过有关 BitMap 和 BitMapData 的信息。我应该能够将 MovieClips 绘制到 BitMap 上,这样我就可以循环像素以查找碰撞。但是,处理偏移量很奇怪和令人困惑。它看起来像 MyBitMap.rect 总是 x = 0 和 y = 0 ......我无法找到东西的原始位置......

我正在考虑先做一个hitTestObject,然后如果这是肯定的,我会调查movieclips矩形之间的交叉点以进行像素碰撞。但是还有另一个问题(电影剪辑的旋转)......

...我需要一些关于如何做到这一点的启发。请,任何帮助将不胜感激..

0 投票
2 回答
844 浏览

java - Java中的完美圆到完美圆和完美圆到直线碰撞处理

我是 Java 的新手,但决定制作一个有一堆弹跳的应用程序。请记住,我对法线几乎一无所知,我已经看到在这种线程中提到了很多。我也只学过代数1,并且知道一点三角(正弦、余弦和正切)。无论如何...

我已经覆盖了碰撞检测,使用
if (java.awt.geom.Point2D.distance(X1, Y1, X2, Y2) < ball1.radius + ball2.radius) {return true;} else {return false;}

if (ball.x + ball.radius > getWidth) {COLLISION}

依此类推,适用于所有四面墙

我需要做的是以半现实的方式处理这些碰撞,而不是切换速度和方向。

一切都在 JPanel 中绘制

提前感谢您的帮助