问题标签 [game-physics]

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

physics - 物理引擎 - 确定碰撞后物体的速度

在为我的物理引擎研究信息时,我遇到了确定碰撞后物体的速度(或碰撞“脉冲”的大小)的问题。许多消息来源说使用恢复系数,但根据维基百科,这取决于碰撞中两个物体的属性。不幸的是,要确定 CoR,您需要知道物体的最终速度!

0 投票
1 回答
458 浏览

game-physics - 基于力的图:3D 边缘碰撞

想象一个带有碰撞边缘的移动 3D 力图。编写一个特定的物理引擎来计算边缘(字符串、绳索)碰撞有多容易,这样每个对象的行为都像在现实世界中一样?弦应该弯曲,节点应该相互排斥,等等。超出视觉识别的准确性“看起来很真实”并不重要,这是一个游戏。

编辑:也许我忘了提到,将边缘近似为多段字符串是我能想到的唯一选择。

是的,是否有可能将这种物理学扩展到数百或数千个边缘?

0 投票
1 回答
2056 浏览

wpf - WPF 物理引擎

我正在寻找 WPF 的 2D 物理引擎,而不是 Silverlight。物理引擎应该是可混合的,以便我可以在混合中指定特定控件的行为。有吗?

0 投票
1 回答
102 浏览

.net - Visual Studio 的优化问题或我看不到的逻辑错误?

我正在开发一个小型物理玩具应用程序。它工作正常,除了粒子不会相互推开,只会拉向,我逐个命令调试了 sub 通过它的命令,并意识到值“H”不会改变,在第一次通过时设置为什么sub 是它保留的内容,更改此值的唯一方法是手动设置它,即'h = 1'。一旦对“H”值重做计算,它就会重置为之前的值,即使 x1,y1,x2,y2 都不同,因此意味着 H 应该不同。

我认为是我在某个地方犯了数学错误,但我看不出它在哪里。我需要一双崭新的眼睛来审视我的工作。如果你发现任何东西,请告诉我。

谢谢。

0 投票
2 回答
14673 浏览

c# - Xna 将重力添加到 2d 精灵

我试图在我的第一个 xna 2d 游戏中模拟重力。我有以下

所以我试图在 elapsedAirTime < maxAirTime 时将精灵向上移动一定量但是,在这段时间里,我的代码似乎只向上移动精灵一次而不是多次。这是我的“player.cs”类中的代码,或者类的更新方法。

任何帮助都非常感谢,请,谢谢!

0 投票
3 回答
1655 浏览

objective-c - 2d 地图中的游戏图块移动

在 2D 方形网格系统中进行移动的最佳方式是什么?我有这个有用的东西,但它看起来是错误的/丑陋的(见下文)。

例如,U 是我要移动的单位,而 O 是像另一个单位或一座山一样无法通过的物体。如果 U 可以移动 3 个图块,我希望可移动区域(M)看起来像这样。

这是我的代码:

0 投票
2 回答
518 浏览

c - TrigMath, 2 masses, rigid rod computing velocity

Like everyone else, I am doing a Thrust clone just to brush up. I have arrived at the stage where the ship picks up the pod.

Essentially I have two masses (consider centre of sphere only) connected with a rigid, massless rod. L never changes, doesn't break.

balls!

In this case, the ship(ma) has mass 1.0, and the pod(mb) has mass 2.0. What is the math required to compute new positions? When I apply thrust to the ship(ma), how do I apply that to pod(mb)? (and make it swing around as expected) Doing the ship itself was straight forward, usual velx-=sin(angle)*thrust, vely+=cos(angle)*thrust. posx+=velx. etc. I know I used to know how to do this, but school was soo many years ago.

0 投票
3 回答
3278 浏览

scripting - Unity 3D 物理

我在统一 3d 中遇到物理问题。我希望我的球从墙上弹回并朝另一个方向移动。当球撞到墙上时,它会直接弹回来。我尝试将方向更改为与它撞墙的方向正交,但它不会改变方向。因此,球只会不断地撞到墙上并直接弹回。

其次,有时球会穿过墙壁。墙壁有盒子对撞机,而球有球对撞机。它们都具有连续动态作为碰撞检测模式。

0 投票
3 回答
35495 浏览

data-structures - 用于二维碰撞检测的四叉树

我正在尝试使用四叉树进行 2D 碰撞检测,但我对如何实现它有点困惑。首先,我有一个四叉树,它包含四个子树(一个代表每个象限),以及一组不适合单个子树的对象。

当在树中检查对象的碰撞时,我会做这样的事情(感谢QuadTree 的 2D 碰撞检测):

  1. 检查对象是否与当前节点中的任何对象发生冲突。
  2. 对于空间与对象重叠的任何子树,递归。

要查找四叉树中的所有碰撞:

  1. 检查当前节点中的每个对象与当前节点中的其他对象。
  2. 针对每个子树检查当前节点中的每个对象。

插入四叉树:

  1. 如果对象适合多个子树,则将其添加到当前节点,然后返回。
  2. 否则,递归到包含它的任何子树。

更新四叉树:

  1. 递归到每个子树。
  2. 如果当前节点中的任何元素不再完全适合当前树,则将其移至父节点。
  3. 如果当前节点中的任何元素适合子树,则将其插入子树。

这可以吗?可以改进吗?

0 投票
3 回答
1707 浏览

java - 二维球碰撞问题:能量不守恒

我正在尝试编写一个简单的物理模拟,其中具有不同半径和质量的球在完全弹性和无摩擦的环境中反弹。我在此资源之后编写了自己的代码:http ://www.vobarian.com/collisions/2dcollisions2.pdf ,我还从这里测试了代码:Ball to Ball Collision - Detection and Handling

问题已编辑

在 Rick Goldstein 和 Ralph 的帮助下,我的代码可以正常工作了(有一个错字……)。非常感谢你的帮助。但是,我仍然对为什么其他算法对我不起作用感到困惑。球以正确的方向反弹,但系统的总能量永远不会守恒。速度越来越快,直到球开始在屏幕上的静态位置闪烁。我实际上想在我的程序中使用这段代码,因为它比我写的要简洁得多。

这是我编写的函数算法(尽管我确实从其他来源获取了第一部分)。它在 Bubble 类中:

这是一个不起作用的

如果你发现什么,请告诉我。谢谢