问题标签 [physics-engine]

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 回答
565 浏览

iphone - 防止动态物体穿过花栗鼠中的静态物体?

我有一个动态体错误地通过静态体,所以我在代码中丢失了吗?我该如何解决这个问题?

谢谢

0 投票
1 回答
889 浏览

flash - ActionScript-3 物理库

我想写一个游戏,其中舞台上有一些球,它们会随机移动。它们必须具有独特的起始速度和角度,并且应该像真正的台球一样相互干扰。AS3 中是否有任何物理引擎可能对此有用,还是我必须从头开始编写和建模它们的行为?

0 投票
2 回答
833 浏览

collision-detection - 在“蠕虫状”生物的 2D 模拟中需要碰撞检测/解决方面的帮助

我正在实现一个物理引擎来模拟类似蠕虫的生物。问题是,它们能够相互游过并占据空间的同一点。所以你对环境有一些了解,我在这里提供一个视频:http: //www.box.net/shared/mlddkslszbxd59cfdhpc

所以我需要做的是结合一个碰撞检测和解决算法来克服这个问题。对于检测部分,我一直在使用包围圈;每个蠕虫都有一个外部粗圆圈,如果交叉,则会触发围绕每个身体部分放置的较小细颗粒检测圆圈的检测:

蠕虫与粗粒和细粒碰撞圆相互作用的示例

那一点相对容易。更困难的一点是在发生碰撞时决定做什么。我的第一个想法是简单地迫使有问题的点质量彼此远离,但这会产生一些相当奇怪的效果。我猜想一种更现实的方法会改变违规点质量的速度,从而基本上将它们击落。那么我的问题是如何推导出这些速度和相关的力。

以防万一它不完全明显,每个蠕虫都是由弹簧和点质量制成的。蠕虫的每个身体部分在静止时呈矩形,有 4 个点质量和 6 个弹簧(因为还有两个对角弹簧)。

为任何帮助干杯,我真的很感激!:-) 本。

0 投票
2 回答
1670 浏览

box2d - Farseer 物理:碰撞检测问题

我有三个矩形块:地面块,蓝色块,英雄块。地面放置在屏幕底部,蓝色块放在地面块上,英雄块下降到蓝色块。我有侦听器,可以检测英雄何时触地。有两种情况: 1)当英雄从低处跌落到蓝块时,它的ok监听器通知英雄只接触蓝块。2) 当英雄从稍高一点的高度跌落到蓝色方块时,监听器通知英雄触地!!!如何解决这个问题?

这是英雄 OnCollision 监听器:

0 投票
1 回答
686 浏览

java - Fluid Dynamic Engine/Simple Wave API Java 或 Objective C

我正在寻找流体,当然还有流体本身的基础知识,然后让所有对象相互交互。一个简单的波引擎,IE 物理引擎,可以处理流体上的表面波,并且可以处理反射和反射对象。

我真的不想从头开始,而且大多数流体动力引擎对于我需要的东西似乎有点矫枉过正。

我只需要基本上能够描述一个波浪,以及它表面和表面上的物体

我知道肯定有一些东西可以在不重新发明轮子的情况下做到这一点。

基本上我打算有一个网格,每个网格元素中可以有一个对象,该对象可能会影响波,也可能不会,它可能会反射/偏转波,它可能会在波通过时减少波,甚至可能会增加当它经过时挥手。如果它们同时存在于网格的同一部分,它应该处理多个波的总和,等等。

0 投票
1 回答
546 浏览

javascript - 是否有 javascript 物理引擎可以模拟重力中的多边形?

就像谷歌重力一样。图像不仅充当点,而且充当矩形。当我拖放它们时它们会旋转。

我看到了jPhysics插件,但它无法模拟旋转。

我不知道如何用Box2D-js拖动东西。

有完整的库吗?或帮助我自己实现的教程?

(我想要的是:悬垂和旋转。)

0 投票
2 回答
3837 浏览

unity3d - 如何赋予粒子物理材质或使其没有摩擦?

我的粒子发射器的 y 力为 -9.8,所以它们像沙子一样掉下来。不幸的是,当他们撞到一块倾斜 45 度角的木板(一个在其箱形对撞机上带有冰物理材料的立方体)时,他们非常缓慢地滑下它。

你能给粒子一个像冰一样的物理材料吗?如果不是,如何减少粒子与所有其他物体之间的摩擦,使其更快地向下流动?

0 投票
1 回答
348 浏览

vb.net - VB.Net 的物理库?

嗨,有没有可以与 vb.net 交互的库。我搜索了一下,但我刚刚找到了 c# 的库。我知道不适合使用 vb.net 来制作这些东西,但我想知道。

谢谢。

0 投票
2 回答
3523 浏览

multithreading - 通过设置亲和力在单核上运行多线程程序的性能?

简而言之:

在单核上运行多线程应用程序在什么情况下会破坏性能?

将多线程应用程序的亲和性设置为仅使用一个内核怎么样?

长篇:

我正在尝试在其自己的线程上运行 2D 引擎的物理特性。它工作正常,起初性能似乎正常,但我决定让游戏尝试以 10K FPS 和 120FPS 的物理速度运行,进入任务管理器并将亲和力设置为程序只能使用一个内核的位置。

在将亲和力设置为一个核心之前,FPS 大约为 1700,之后它达到了大约 70FPS。我没想到会出现这种下降。我告诉游戏尝试以 300 FPS 和 60 FPS 运行物理。

同样的事情发生了。

我没有多想,所以我只是继续修改引擎。后来我在更改了一些绘图代码后再次对其进行了测试,300 FPS,60FPS 用于物理。在允许所有内核的情况下,它可以很好地管理 300FPS,与单核 FPS 的亲和力下降到 4。现在我知道在单核上运行多线程应用程序不可能那么糟糕,或者我不知道发生了什么您将亲和力设置为单个核心。

这是关于渲染/物理如何运行的......

循环开始

收集输入直到 (1.0 / FPS) 通过。

来电更新。

锁定物理线程互斥体,因为游戏中的事物将使用物理数据,并且我不希望引擎更新任何内容,直到此更新调用中的所有内容完成。

更新游戏中可能发送 Draw 函数对象(保存要绘制的内容、绘制的位置、如何绘制)到渲染队列的所有内容。

解锁互斥锁。

渲染器在每个函数对象上调用 operator() 并将它们从队列中删除。

更新画面。

重复循环。

物理线程循环:

// 注意:自动互斥锁只是我创建的一个非常简单的对象,用于在构造函数中锁定互斥锁并在析构函数中解锁它。我正在使用 Allegro 5 的线程功能。

0 投票
2 回答
361 浏览

iphone - 如何在box2d中将运动限制为垂直

我有一个带有球夹具的 box2d 身体。它只是在一个矩形盒子的顶部上下弹跳。有时它会无缘无故地从盒子上掉下来。我有办法将重力限制为仅垂直,以便我可以解决这个问题?