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

algorithm - Sphere - 球体碰撞检测 -> 反应

我需要制定一个算法来检测两个球体何时发生碰撞,以及碰撞后一个球体的方向。

假设,想象一下,当您在桌球比赛中打开桌子时,所有的球都“随机”地相互碰撞。

所以,在开始自己编写代码之前,我在想是否已经有一个实现。

提前谢谢!

赛亚斯.-

0 投票
1 回答
902 浏览

formula - 求解三次以找到曲线上离点最近的点

好的,

我有一个弹丸,其位置定义如下:

我希望能够预测该弹丸将与我的环境中的哪些障碍物相撞。我计划检查从A曲线上最近的点到点P的距离。

我认为在点A处,曲线的切线将垂直于矢量AP,并且曲线在A处的切线将只是该点处弹丸的速度V。

APV = 0

=>

APV =

从这里我可以看到这是一个三次函数。我花了一些时间在网上研究,发现有一个通用方程似乎适用于某些值来寻找根。

这是我试图实施的过程。 http://www.sosmath.com/algebra/factor/fac11/fac11.html

当我将 x 作为时间插回曲线的原始方程时,这应该给我A。这似乎对某些值很有效,但是当 py 高于某个值时,我在二次方程中没有取平方根的正数。

我对数学的理解不够全面,无法理解为什么会发生这种情况,或者我能做些什么来解决这个问题。

对此的任何帮助将不胜感激。

更新:

我已经调整了我的算法来处理复杂的根,但是我仍然遇到了麻烦。如果判别式为负,这就是我现在要做的:

出于某种原因,这仍然没有给我预期的结果。这里有什么明显的错误吗?

0 投票
3 回答
444 浏览

actionscript-3 - Actionscript 冲突:解决异常和奇怪的情况

我创建了一个碰撞类来使用像素检测碰撞。在我的课堂上,我还开发了一些用于确定碰撞角度的函数。基于此,我创建了一些示例:

http://megaswf.com/serve/25437/

http://megaswf.com/serve/25436/

(改变重力的空间,右/左给球一些速度。)

您可能会注意到,会发生一些奇怪的事情:

  • 当球速很低时
  • 当球的方向几乎与障碍物相切时。

碰撞 http://img514.imageshack.us/img514/4059/colisao.png

上图显示了我如何计算碰撞角度。我称红点为关键点。我搜索最大数量的关键点(通常为 4 个)。如果我发现超过 2 个关键点,我选择最远的 2 个(如蓝色对象之一所示)。这就是我如何找到物体碰撞表面位置的法线角度。我不知道这是否是一种过时的做事方式。

基于该角度,我旋转速度矢量来进行弹跳。

进行数学运算的代码如下:

这就是计算新速度矢量的方式......

我的问题是,有没有人遇到过这种问题,或者对如何避免这种情况有一些想法?

0 投票
1 回答
569 浏览

cocos2d-iphone - 花栗鼠的身体随着视差移动?

我正在使用 Cocos2D、SpaceManager 和 Chipmunk。我有一个有 4 层的视差节点,这与可玩的花栗鼠身体的位置有关。该物体需要与其中一个视差层上的静态物体发生碰撞,静态物体必须从屏幕开始,然后移动到屏幕并发生碰撞。

我知道你不应该用花栗鼠移动静态物体,除非你重新哈希。但是,每秒重新散列 60 次以跟上帧速率似乎很混乱。谁能想到另一种方法来做到这一点?

干杯。

0 投票
2 回答
1401 浏览

c++ - 如何移动多个矩形作为碰撞响应?

我正在尝试制作一个游戏(使用带有 c++ 的 irrlicht 引擎),您可以在其中使用盒子来诱捕敌人。但是我只是不知道如何检测当检测到用户与一个或多个盒子之间的碰撞时应该移动什么。另一件事是,还会有一些称为砖块的物体能够阻挡运动。

由于我不太擅长解释事情,所以我附上了一张图片,所以希望它能澄清我的意思:(来源:jrahmati.info替代文字

我用我的代码尝试了几件事,但没有成功。所以我真的希望有人会努力回答这个问题。提前致谢。顺便说一句,我不需要 c++ 中的答案,java 或 .Net 语言也可以。

对于任何对代码感兴趣的人:

bool Game::tryMove(user, dir) 的内容,它试图将所有东西从玩家身上移开

0 投票
2 回答
1646 浏览

cocos2d-iphone - 将花栗鼠身体移动到 Sprite 位置

我有一个花栗鼠的形状,有一个身体,在一个空间里。我正在将身体从空间中移出,以便我可以定位它并且不会因为重力等而使其掉落。我需要能够使这个身体移动,所以我没有让它静止。

我需要身体根据场景中 Cocos2D 精灵的位置 + 偏移量来更新它的位置。

我正在设置身体位置:

collShape->body->p = collSprite.position; - 这似乎不起作用,不会编译错误,它会运行,但碰撞形状不会移动。

是否可以根据我的刻度方法中精灵的位置移动碰撞体?

0 投票
1 回答
2640 浏览

algorithm - Pseudocode for Swept AABB Collision

I think swept means determining if objects will collide at some point, not just whether they are currently colliding, but if I'm wrong tell me.

I have objects with bounded boxes that are aligned on an axis. The boxes of objects can be different sizes, but they are always rectangular.

I've tried and tried to figure out an algorithm to determine if two moving AABB objects will collide at some point, but I am having a really hard time. I read a question on here about determining the time intervals when the two objects will pass at some point, and I didn't have a problem visualizing it, but implementing it was another story. It seems like there are too many exceptions, and it doesn't seem like I am doing it correctly.

The objects are only able to move in straight lines (though obviously they can change direction, e.g. turn around, but they are always on the axis. If they try to turn off the axis then it just doesn't work), and are bound to the axis. Their bounded boxes don't rotate or do anything like that. Velocity can change, but it doesn't matter since the point of the method is to determine whether, given the objects' current state, they are on a "collision course". If you need any more information let me know.

If someone could provide some pseudocode (or real code) that would be great. I read a document called Intersection of Convex Objects: The Method of Separating Axes but I didn't understand some of the pseudocode in it (what does Union mean)?

Any help is appreciated, thanks.

0 投票
1 回答
1062 浏览

c# - Tilemap - 需要碰撞层吗?

我正在创建一个 2d 横向滚动游戏并且对碰撞有疑问。我一直在阅读各种文章,其中一些说你应该有一个碰撞层,它与瓦片层的样式完全相同,但只是存储位。我理解这个逻辑,但是如果我的图块实际上是包含一个名为IsSolid. 我可以不简单地检查当前图块isSolid而不是另一个图层吗?或者有一个碰撞层是否提供了我错过的更多好处?

谢谢你的帮助

0 投票
2 回答
84 浏览

.htaccess - HTACCESS 重定向

在我的 htaccess 文件中,我有以下两条规则。我想让第二个发生在第一个不匹配的情况下。目前,他们都跑了。有什么办法可以避免碰撞吗?

提前致谢。

0 投票
4 回答
3911 浏览

java - Java Map::hashCode() 冲突 - 为什么?

以下代码导致为两个地图生成相同的哈希码,有什么想法吗?

结果是:

只需更改键名就足以使代码生成两个不同的哈希码。