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

xna - 如何解析边界顶点的图像?复杂物体几何(远见物理学)

我如何通过扫描图像并检测它的形状(它的非透明像素)来创建身体顶点?

我想创建复杂的几何图形,实际上我不知道从哪里开始,所以任何建议都会受到高度赞赏。接受的答案很可能是解释最重要想法的答案。

提前致谢

0 投票
1 回答
1181 浏览

collision-detection - 点平方碰撞后的滑动响应

在一般术语和伪代码中,如果墙壁实际上只是一个点正在碰撞的整个正方形的一部分,那么获得沿墙壁滑动的碰撞响应的最佳方式是什么?使用的碰撞测试方法是测试点是否在正方形中。

我应该把正方形分成四条线,然后计算到直线的最短距离,然后将点移回那个距离吗?如果是这样,那么我如何确定碰撞后点最接近正方形的哪条边?

0 投票
1 回答
555 浏览

actionscript-3 - 使用 Actionscript 3 在 2D 中跳跃的想法 [包括尝试]

所以,我正在研究 Actionscript 3 的基础知识;制作游戏等。我设计了一个小空间,一切都基于边界的位置,使用逐像素移动等。

到目前为止,我的家伙可以推动一个盒子,并在跑到边界时停止,或者当盒子靠在边界时尝试推动盒子。

所以,接下来,我想做到,所以当我撞到另一个盒子时,它会向前冲;侧身小跳。

起初我试图(愚蠢地)使用它:

虽然,在我为移动所拥有的功能中使用它(不断检查按键等)一次完成了这一切。我应该从哪里开始进行这样的逐帧运动?此外,它实际上不是场景中的帧,只是在运动中。

这是一大堆垃圾,我很抱歉,但我们将不胜感激。

0 投票
3 回答
3140 浏览

physics - 转船的物理学

我正在写一个小船的模拟(一艘在动力而不是帆下的帆船)。它有一个方向舵和一个龙骨,我的大部分物理原理都在为推力和阻力工作。我已经将穿过船的阻力建模为高于沿船的阻力,以减少侧滑。

但是,它的行为并不完全正确。我说的对吗?龙骨不仅可以提供阻力,还可以通过引导水帮助船通过转弯?

最终的模型不一定要科学准确,它只需要“感觉”像一艘船。

任何指针将不胜感激。

最好的问候和提前感谢。

戴夫


编辑(最初由 OP 作为答案发布)

好的,意识到我错过了龙骨产生的流体动力“升力”。看起来它就像水下的帆一样,并产生一个与上面的水流和水流角度成正比的力矢量。力矢量与水在龙骨上的运动方向相反,朝向船指向的方向。从理论上讲,这应该可以减少侧滑,并通过转弯拉船。

如果有人知道这些东西,如果他们能添加一个对我的基本理解有一定意义的答案,将不胜感激。我试图将其提炼成一个与船指向的方向以及船的行驶方向和速度有关的公式。


好的,意识到我错过了龙骨产生的流体动力“升力”。看起来它就像水下的帆一样,并产生一个与上面的水流和水流角度成正比的力矢量。力矢量与水在龙骨上的运动方向相反,朝向船指向的方向。从理论上讲,这应该可以减少侧滑,并通过转弯拉船。

如果有人知道这些东西,如果他们能添加一个对我的基本理解有一定意义的答案,将不胜感激。我试图将其提炼成一个与船指向的方向以及船的行驶方向和速度有关的公式。

0 投票
3 回答
11633 浏览

physics - 为什么 Verlet 积分优于 Euler 积分?

有人可以向我解释为什么 Verlet 积分比 Euler 积分更好吗?为什么 RK4 比 Verlet 更好?我不明白为什么这是一个更好的方法。

0 投票
2 回答
13757 浏览

android - 安卓卡尔曼滤波器

是否有卡尔曼滤波器实现我可以用来过滤我的陀螺仪和 Android 手机的加速度数据?

0 投票
7 回答
7171 浏览

collision - 将球从表面弹起

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

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

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

约束:

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

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

谢谢!

0 投票
3 回答
2059 浏览

open-source - 游戏开发:像 Crayon Physics 这样的开源项目?

Crayon Physics是一款精彩的游戏,因为所有物体都是真实的运动。重力和碰撞是该游戏中非常重要的两件事。我知道这就是它售价 19.95 美元的原因

是否有等效的开源项目?我对代码和所有物理定律非常感兴趣。还是我还要上学几年,然后自己写……

是另一个例子(在 Flash 中),其中有很好的物理特性。我不知道我应该用哪些词来搜索这样的项目。

谢谢

0 投票
6 回答
14517 浏览

physics - 子弹物理引擎,如何冻结物体?

使用 Bullet 2.76 我试图冻结一个对象(刚体),使其立即停止移动,但仍对碰撞作出反应。

我尝试将它的激活状态设置为 DISABLE_SIMULATION,但它对其他对象几乎不存在。此外,如果对象在禁用时与它“碰撞”,就会开始发生奇怪的事情(对象从静态物体下落等)

我想,暂时将其转换为静态刚体可能会起作用,但是在 Bullet 方面是否有现有的“本机”方法来实现这一点?

编辑:有没有办法关闭特定物体的重力?

0 投票
6 回答
2106 浏览

physics - 垂直圆周运动:时间(x/y)与速度方程

我想通过动画来模拟以下内容:
一个球从一个垂直圆形循环的最底部以一定的速度开始,
并一直在其中滚动,直到它的速度允许。

为此,我想找到速度/x/y 与时间方程。
例如,如果球的质量:5Kg,圆环的半径 = 10m,
球的初速度为 200 m/s,
5 秒后它的速度和 (x,y) 位置是多少?

谢谢。