Questions tagged «physics»

与物体在空间和时间上的运动有关。包括诸如加速度(推力和重力),质量,碰撞响应,摩擦等概念。


1
任何定点便携式开源3D物理引擎?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 2年前关闭。 我正在寻找定点3D物理引擎(基本动力学和碰撞检测分辨率...没什么花哨的。) 我需要定点数学运算,因为我想获得确定性的结果(出于可重复性目的)和较高的可移植性,因为我希望我的游戏对于不带浮点运算单元的手机或便携式游戏机等设备具有很高的便携性。

3
有台球游戏的算法吗?
我正在寻找一种算法来计算台球游戏中球的方向和速度。我确信必须有某种类型的开源代码,因为桌球游戏是我记得最古老的一些计算机游戏。 我的意思是,当一个球击中另一个球时,我需要一种算法来计算两个球的方向。这将取决于他们彼此碰撞的确切角度以及速度。 我想练习Java编码,所以我正在寻找具有这种类型代码的Java代码或程序包。
14 java  physics  billards 


2
如何在游戏中模拟多普勒效果?
我正在尝试在游戏(赛车游戏)中模拟多普勒效果。我没有使用模拟声音效果的特定声音库,只有混合数据的回调函数。 我已经弄清楚了如何在混频器功能中更改采样频率。 我不知道,根据玩家和发射器的位置和速度,频率应该改变多少。 这是我在游戏中所拥有的: //player vec3 p.pos; vec3 p.vel; //emitter vec3 e.pos; vec3 e.vel; 1)根据维基百科,发射频率与观测频率之间的关系为: float f = (c + vr) / (c + vs) * fo 其中c为常数,介质(通常为大数)中的速度 vs和vr是相对于介质的源和接收器速度。 所以我猜: float vr = p.vel.length; //player speed float vs = e.vel.length; //emitter speed 但是我认为这是错误的,它不会产生任何频率变化,例如:如果vr = 0(玩家不移动)并且发射器具有恒定速度,则vr并且vs不会变化(尽管它们应该)。 也许我应该相对于发射器的速度来计算玩家的速度? 像这样 : relative_speed = …

1
如何在体素地形中实现应力/应变力学?
我正在开发一个类似于Minecraft的世界,该世界将地形划分为体素。但是,我也希望景观的不稳定配置可以预期地崩溃。例如,悬垂太重的物体会在“高应力”体素处断裂并折断,而具有不对称腐蚀基础的柱体也会破裂。我正在考虑向地形中的每个体素添加一个“应力矢量”字段,并执行以下操作(伪代码): foreach voxel in terrain foreach neighbor in voxel.neighbor_voxels() if magnitude(voxel.stress - neighbor.stress) > stressThreshold detach_voxels(voxel, neighbor) 但是问题是我不知道如何计算这些单独的压力。是否存在某种专门用于体素离散化的基于FEA的算法,可以用来计算每个体素的压力?还是我将这一切都弄错了,还有其他方法可以做到这一点?

2
尽管使用了Time.deltaTime,但移动似乎与帧速率有关。
我有以下代码来计算在Unity中移动游戏对象所需的转换LateUpdate。据我了解,我对的使用Time.deltaTime应使最终的翻译帧速率独立(请注意CollisionDetection.Move(),仅用于进行射线广播)。 public IMovementModel Move(IMovementModel model) { this.model = model; targetSpeed = (model.HorizontalInput + model.VerticalInput) * model.Speed; model.CurrentSpeed = accelerateSpeed(model.CurrentSpeed, targetSpeed, model.Accel); if (model.IsJumping) { model.AmountToMove = new Vector3(model.AmountToMove.x, model.AmountToMove.y); } else if (CollisionDetection.OnGround) { model.AmountToMove = new Vector3(model.AmountToMove.x, 0); } model.FlipAnim = flipAnimation(targetSpeed); // If we're ignoring gravity, then just …

4
在客户端和服务器上都运行物理模拟?
我正在实施一个多人小行星克隆,以了解游戏中的客户端/服务器网络架构。我花了一些时间阅读GafferOnGames和Valve关于他们的客户端/服务器技术的出版物。我在两个概念上遇到麻烦。 目前,我有一个权威的游戏服务器,使用box2d模拟物理并将每秒大约20次的世界状态发送给客户端。每个客户端都跟踪接收到的最后几个快照,并在两个状态之间进行切换以使Sprite的移动变得平滑。但是,它并不那么顺利。可能会平滑一段时间,然后有点生涩,然后恢复平滑,等等。我尝试过TCP和UDP,两者大致相同。知道我的问题是什么吗?(注意:我首先为单个玩家实现了此功能,当每秒仅更新20次物理世界时,精灵运动在60fps时非常流畅)。 为了解决第一个问题,我认为客户端也应该运行box2d模拟,并仅在不匹配时更新其sprite的位置以匹配服务器快照。我认为这可能会更流畅,因为我的单人游戏实施很流畅。这是一个好主意吗? 即使不能解决上述问题,客户端预测是否也有必要?例如,如果玩家试图移动自己的飞船,他们如何知道是否在没有物理模拟的情况下撞到小行星,墙壁或敌方飞船?似乎他们的飞船似乎通过了应该与之碰撞的物体,然后才从服务器收到快照,说他们击中了该物体。 谢谢!

3
处理物理引擎中的同时碰撞的最佳方法是什么?
我正在用JavaScript编写2D物理引擎,以便可以了解有关视频游戏中物理的更多信息。我可以使它在刚体碰撞中正常工作,除非任何物体同时与两个或多个其他物体碰撞。 目前,对于每对碰撞体(A,B),我会根据碰撞冲量来修改它们的速度和角速度,并将它们相互推开,以使它们不会穿透。但是,对于涉及A的其他碰撞,碰撞检测和脉冲计算将是错误的。 我可以探索什么方法来使我的引擎针对3个以上的对象相互碰撞而工作?

3
2D游戏碰撞响应:SAT和沿给定轴的最小位移?
我正在尝试在自己制作的2D游戏中实现碰撞系统。分离轴定理(如metanet的碰撞教程所述)似乎是处理碰撞检测的一种有效且健壮的方法,但我不太喜欢它们使用的碰撞响应方法。通过沿最小重叠轴盲目移动,该算法仅忽略了运动对象的先前位置,这意味着它在进入静止物体并随后反弹时不会与静止物体发生太多碰撞。 这是一个很重要的情况的示例: 根据上述SAT方法,该矩形将简单地从垂直于其斜边的三角形中弹出: 但是,实际上,矩形应该停在三角形的右下角,因为如果矩形沿着其位移矢量连续移动,那将是第一个碰撞点: 现在,这在游戏过程中可能实际上并不重要,但是我很想知道是否存在一种以这种方式有效且普遍地获得准确位移的方法。在过去的几天里,我一直在为之绞尽脑汁,我还不想放弃! (从StackOverflow交叉发布,希望这不违反规则!)

3
粉末游戏:它们如何运作?
我最近发现了这两个宝石: http://powdertoy.co.uk/ http://dan-ball.jp/en/javagame/dust/ 我的问题是:如何有效处理具有这么多元素的物理学?我只是严重低估了现代计算能力,还是可能“仅”拥有一个二维数组,该数组的每个单元格描述放置在相应位置的内容,并在每个步骤中模拟每个单元格。还是做一些更复杂的事情,例如将大面积的同类区域汇总到一个数据集中,并根据需要将所述数据集分开? 我可以看一下这样的开源游戏吗?

4
带撬的车辆物理
我将如何为可能失去牵引力的汽车创建汽车物理特性?我希望驾驶员的脚看起来很平坦,所以当您踩油门时,他们的汽车(后轮)的牵引力会松散,并且很难控制。我还希望能够在各个角落进行甜甜圈和“漂流”。 我还需要知道发生了多少“打滑”,因此我可以按比例添加烟雾和轮胎痕迹。 假设一个2D,自上而下的风格的汽车游戏。 谢谢
13 2d  physics 

2
如何使我的2D角色正常站立在斜坡上?
我已经在Unity3D(2D模式)中得到了这个角色...在一个看起来像这样的坡度中, 但是我希望角色沿着红线站立。 如何在Unity3d中制作? 我有这个设置。 我正在使用简单的Addforce进行运动...如果删除z位置约束,则会导致奇怪的运动,如滚动等等。

4
可以正确模拟台球游戏的物理引擎推荐?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 6年前关闭。 我正在做类似台球游戏的游戏。此游戏需要正确(或非常准确)的反射反弹。我尝试了Box2D和Bullet Physics,但是它们都存在此问题。 如果此图像上方有一堵墙,则在台球游戏中,红线是真实球的预期路线。但是引擎经常显示绿线路线。特别, 这是在缓慢移动的球撞击墙壁后发生的。 有时快速移动的球突然变慢。 我正在寻找一种物理引擎,该引擎可以尽可能准确地模拟台球游戏而不会出现这些问题。我可以得到一些建议吗?现在,我正在研究Newton Game Dynamics,但不确定引擎是否会显示我想要的内容。我正在考虑将PhysX引擎作为下一个试用版,如果无济于事,必须自己动手做。但是很明显,这将需要很长时间,所以我希望我不会那样做。如果您节省时间,我将不胜感激。当然,也欢迎使用Box2D / Bullet Physics解决方案。 我正在iOS上使用C / C ++ / Objective + C。 我将我的配置附加到Box2D。 墙 静态盒形 线性/角度阻尼= 0.1 恢复原状= 1.0 摩擦力= 100 密度= 10 项目符号=错误 固定旋转=假 惯性比例= 1.0 球 动态球体形状 线性/角度阻尼= 0.1 恢复原状= 1.0 摩擦力= 100 …
13 physics 

3
如何实现门户网站的冲突检测?
例如,采用这种情况(对不起,我的绘画技巧很差): 这是基于“门户”的,火柴人正在通过蓝色门户(链接到红色门户),但是有一堵墙阻止他在红色门户上。因此,他无法完全通过门户。 所以我的问题是:如何与他们进行物理/碰撞检测?我会切播放器吗?有没有办法链接它们?是否有任何物理引擎支持此操作?如果没有,我该怎么做?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.