Questions tagged «physics»

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

1
将空气阻力添加到高尔夫球轨迹方程中
我正在VB.NET 2005中开发2D高尔夫游戏,但是我对如何实施会影响球的空气或风阻力感到困惑。 我已经有了射弹的这些方程式: v0v0v_0为击打或击打时高尔夫球的初始速度 垂直和水平分量高尔夫球的速度: vXvÿ= v0cos(θ)=v0sin(θ)−gt∗vx=v0cos(θ)vy=v0sin(θ)−gt∗ \begin{align} v_x &= v_0 cos(\theta) \\ v_y &= v_0 sin(\theta) - gt* \end{align} 高尔夫球的垂直和水平距离: xy=v0cos(θ)t=v0sin(θ)t−(0.5)gt2x=v0cos(θ)ty=v0sin(θ)t−(0.5)gt2 \begin{align} x &= v_0cos(\theta)t \\ y &= v_0sin(\theta) t - (0.5)gt^2 \end{align} 如何在此方程式中增加空气阻力以适当影响高尔夫球的速度?我不知道该怎么做,有人处理过类似的方程式吗?


2
为了学习Bullet,将Bullet用于2D物理而不是Box2D是否值得?
问题不多了。我并不担心开销,因为我确信它们都可以满足我的需求。基本上,由于Farseer物理引擎,我对Box2D概念很熟悉,但是当我跳到3D东西时,我想使用Bullet。也许Bullet即使在2D领域对我也具有一定的教育价值? 这个问题的一般版本是:如果我计划将来使用3D物理引擎,是否应该对2D游戏使用3D物理引擎?还是这是浪费时间而没有提供教育价值?

1
现实的缓慢降雪算法?
有没有一种好的算法可以模拟落雪?我对缓慢下雪的雪特别感兴趣,因此它并不是直线下降,而是有一点偏离。甚至可能包括模拟风浪(风速),可变大小等。关于模拟现实雪运动或在游戏环境中进行模拟的算法,是否有任何论文或文章? 我对2D算法特别感兴趣,但是我想任何算法都可以轻松应用于3D。

1
在基于图块的hack&slash游戏中,常用的角色动画技术有哪些?
我想知道在现代的基于hack&slash类型的图块的游戏中,什么样的动画技术用于生物和角色动画?不同动作的关键帧可能是一种选择。骨骼框架可能是另一个。但是物理学呢?还是他们使用逆运动学的完全混合系统,并结合了骨骼,物理和内插关键帧,以获得更逼真的动画?如果是这样,如何以及出于什么原因?对于以下问题,我可以想到许多不同的解决方案,但我想知道什么是最适用的解决方案,例如: 在崎uneven的地形上行走或移动 战斗互动,战斗物理和碰撞 在物理世界中将刚性项目附加到角色及其迭代上 柔软的身体动态(如头发,植被,衣服和织物)与动画和迭代过程一致。

4
Box2D检查点是否与物体相交
有没有办法检查一个点是否与物体相交? 例如,假设世界上有一个身体处于(100,100)的位置。 有没有办法检查(100,100)点是否与该物体相交? 另一个示例与名为“ PHUN”的游戏有关。在PHUN中,您可以单击并拖动身体。您如何检查鼠标点是否与身体相交?
10 2d  physics  box2d 

3
如何计算绷紧的金属丝包裹2D对象所施加的力?
假设我有一个物理原语,我将其称为“导线”,包裹在2D环境中(如本问题所述)。 这是可能的样子的说明: 在示例示例中:电线将盒子向上拉(固定),盒子将电线向下拉。弹簧上的物体被金属丝向下推动,但也向上推动金属丝。 虽然我还没有弄清楚如何实现它,但是假设电线可以在包裹的点上自由滑动。 在2D物理模拟(即:基于框架)中,您如何计算要施加到这样的物体上的力(或脉冲),该物体附着或缠绕在电线上? 正如我在第一个问题中提到的那样,我假设如果电线上唯一的非静态物体是末端的质量,则该力将等于质量与质量点之间的固定长度的连接点在电线上。

1
在2D物理引擎中,当物体静止时,如何避免无用的碰撞解决方案?
在我正在使用love-2d开发(用于学习)的物理引擎中,我通过以下方式实现了碰撞解决方案: FixedUpdate(dt) // I use fixed timestep foreach collide c1 in allNotStaticColliders c1.integartePhysic // i.e. apply gravitational force.. foreach collider c2 "near" c1 // "near"= I use spatial hashing if collide(c1,c2) resolve collision (c1,c2) // the heavy operation collison callbacks c1 collison callbacks c2 ... 如您所见,在gif动画的末尾,当所有对撞机几乎都固定在静态对象上时,FPS会衰减。 这是因为碰撞解决方案的数量随着对象在静止时花费更多的时间而增加。但是,许多计算都是“无用的”,因为对象已经相对彼此沉降到稳定的位置。 避免这些“无用的”碰撞检测的最佳实践(最好是不需要物理学位)是什么? 编辑:接受DMGregory提示,并得出此结果(尚不理想) (红色=静态,蓝色=活动,绿色=睡眠)


3
大增量时间的物理模拟方法?
哪种物理模拟方法最适合真正的大增量时间(几小时到几周)? 此外,在不同的增量时间和增量时间相结合时,我是否会遇到任何问题?
9 physics 

3
移动AI时如何考虑重力
我正在制作2D游戏。当前有一架直升飞机在飞行,由玩家控制。使用箭头键UP,LEFT和RIGHT进行控制。 沿y轴的速度为dy,而沿x轴的速度为dx。 它的物理如下: 只要不按UP,就dy以恒定的加速度无限期地加速。(重力)。dx保持其当前值。 当被按压UP,dy加速在恒定加速度从不管它目前是,高达4(向上,直到它到达速度4)。dx保持其当前值。 当按下左,dx加速在不断加速,从不管它目前,达-4。 当RIGHT被按下,DX加速时在恒定加速度,无论从任何它目前是,高达4。 (当我按下左键或右键而未同时按下UP 键时,我说过:dy由于重力影响直升机,它越来越小) 所有这些使直升机经常沿空中拱形而不是直线。 这产生了看起来很现实的物理学。 我的问题是: 敌方直升机,即AI,应使用相同的物理系统移动。 假设AI希望从当前位置到达B点。 如果游戏中没有重力且没有逐渐加速,那将很容易。我只需从AI的位置绘制一个向量到B点,然后让AI跟随它。 但是,由于存在重力和逐渐的加速度,所以AI永远无法(几乎)沿直线运动。使AI尽可能高效地到达B点的最佳方法是什么? 将AI移至特定目的地时,如何考虑重力? (如果更容易解释,请考虑B点在y轴上与AI处于同一水平,而不是与之成对角线。) 谢谢
9 2d  physics  ai 

3
使快的东西变慢(Box2D)
我正在开发一款游戏,您可以控制投石机向对手投球。 这就像一个名为“中世纪围攻”的游戏。当投石机摆动手臂时,玩家需要抓住最佳时机按下按钮并释放球。然后,球将以切线角度飞行。 我现在的问题是,投石机的手臂摆动太快,以至于玩家无法抓住正确的时刻。同时必须如此之快,否则不能扔得足够远。并且有一根细绳将球和投石机臂连接起来,如果臂摆动太慢,则当臂移动时,球只是悬在绳上。 我通过切换步长来解决问题,每当手臂摆动时,我都将步长从1/60更改为1/200。一旦球员放开球,球便回到了1/60。 除了我的游戏适用于具有网络功能的多人游戏外,这还算不错。因此,更改步骤可能会导致问题。 我能想到的另一种解决方案是让它缓慢摆动,但是当玩家释放球时,我会在保持球方向的同时手动向球上增加速度。我不太喜欢这种解决方案,因为它看起来很假,但我仍然有一个问题,就是除非球非常短,否则球只是挂在弦上。 请对此有所说明,谢谢! 编辑 感谢大家的投入,我通过使手臂缓慢摆动来解决问题,并在玩家释放球时抓住球的速度和两倍。它看起来与更改步长大小完全相同。我只需要做一件事。因为手臂的摆动非常缓慢,所以球只是悬在手臂末端而不是摆动。我通过在挥杆期间和仅在挥杆期间在球上施加与重力相等的力来解决此问题。然后它不再挂在那里,而是与手臂一起摆动。 @MrCranky的答案很详细,看起来很可行,所以我接受。:)

2
无人机定位
想象一个“无人机”和一个二维平面上的目标点。有八个参数: P = my position Q = target position V = my velocity I = my moment of inertia w = my angular velocity s = my angular position T = max thrust U = max torque (我们只是说目标是固定的) 无人机的工作是尽可能快地到达目标,并遵守最大扭矩和最大推力。只有两种方式施加扭矩,因为这仅在2d平面中。推力仅限于相对于飞行器方向的一个方向,并且不旋转无人机就无法瞄准。忽略任何阻力,您可以假装它在2D外部空间中漂浮。假设无人机t每隔一段时间(例如每0.01秒一次)检查一个方程式,插入参数,并相应地调整其扭矩和推力。推力和扭矩方程应该是什么?

2
从Rectangle.Intersects()获取碰撞详细信息
我有一个Breakout游戏,在该游戏中,有时会通过以下方式检测到球和桨之间的碰撞: // Ball class rectangle.Intersects(paddle.Rectangle); 有什么办法可以获取当前碰撞的确切坐标或有关碰撞的任何详细信息XNA API? 我考虑做一些基本的计算,例如比较碰撞时每个物体的精确坐标。它看起来像这样: // Ball class if((rectangle.X - paddle.Rectangle.X) < (paddle.Rectangle.Width / 2)) // Collision happened on the left side else // Collision happened on the right side 但是我不确定这是正确的方法。 你们对我可能要使用的引擎有任何提示吗?甚至使用这种方法的良好编码习惯?

4
我应该在游戏中的图形和物理引擎之间共享数据吗?
我正在编写包含几个模块的游戏引擎。其中两个是图形引擎和物理引擎。 我想知道这是否是在他们之间共享数据的好解决方案? 两种方式(是否共享)如下所示: 不共享数据 GraphicsModel{ //some common for graphics and physics data like position //some only graphic data //like textures and detailed model's verticles that physics doesn't need }; PhysicsModel{ //some common for graphics and physics data like position //some only physics data //usually my physics data contains A LOT …

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.