Questions tagged «projectile-physics»

物体在空中航行的运动物理学,从投掷的棒球到战舰的大炮射击再到落石。

15
如何在视频游戏中模拟子弹?
我最近一直在玩MW2之类的游戏,作为一名程序员,我倾向于问自己如何使游戏如此吸引人。例如,他们如何模拟子弹速度。 当NPC从他的枪中发射子弹时,子弹真的从他的枪中传播到给定的目标,还是他们完全忽略了这部分而只是在目标上放了一个子弹孔? 如果子弹确实是从枪支射向目标,它实际上以什么速度行进?


4
2D塔防-敌人的子弹
我正在尝试找到一种好的方法来解决子弹击中敌人的问题。游戏是2D塔防,塔应该发射子弹并保证击中敌人。 我尝试了这种解决方案-http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/ 提到的链接也要减去子弹的起源和敌人(矢量减法)。我试过了,但子弹刚好绕过敌人。 float diffX = enemy.position.x - position.x; float diffY = enemy.position.y - position.y; velocity.x = diffX; velocity.y = diffY; position.add(velocity.x * deltaTime, velocity.y * deltaTime); 我对向量很熟悉,但不确定要使此解决方案有效需要执行哪些步骤(向量数学运算)。

5
如何计算导弹的转弯航向?
我有一枚从船上射出的导弹,它以一定角度射出,然后导弹以给定的转弯半径以弧线朝向目标转向。当我需要开始转弯以使导弹直奔目标时,如何确定弧上的点? 编辑 在发射导弹之前,我需要做的是计算并绘制飞行路径。因此,在所附示例中,运载火箭的航向为90度,目标在其后面。两种导弹均以相对于运载工具航向-45度或+ 45度的相对航向进行发射。导弹最初以已知的转弯半径转向目标。我必须计算转弯将导弹带到要直接攻击目标的转弯点。显然,如果目标处于或接近45度,则没有初始转弯,导弹只会直奔目标。 发射导弹后,地图还将在该线上显示导弹跟踪,以指示其飞行路线。 我正在做的是在模仿可运行软件的模拟器上工作。因此,在允许导弹发射之前,我需要绘制计算出的飞行路径。 在此示例中,目标位于运载火箭后面,但绘制了预先计算的路径。

3
弹丸运动-箭头
在2D游戏中,我只想绘制飞行中箭头的轨迹。使用下面的代码,轨迹(抛物线)看起来正确,但是角度(或旋转)或箭头不正确。 float g = -9.8f; float x = (launchVelocity * time); float y = (launchVelocity * time) + (0.5f * g * (float)Math.Pow(time, 2)); float angle = (float)Math.Tanh(y / x); 我想念什么?谢谢。

2
我该如何使好人攻击只击中坏人,反之亦然?
我的游戏有许多不同类型的好人和许多不同类型的坏人。他们都将向对方发射弹丸,但我不希望任何对准都会发生意外附带损害。因此,坏人不应该打/伤害其他坏人,好人不应该打/伤害其他好人。 我想解决此问题的方法是通过使其Unit实例(这是javascript,btw)具有alignment可以为goodor 的属性bad。而且我只会让碰撞发生 class Attack boolean didAttackCollideWithTarget(target) return attack.source.alignment != target.alignment and collisionDetected(attack.source, target) 当然,这是伪代码。 但是我之所以问这个问题,是因为我觉得除了在Unit类中添加另一个属性之外,还有一种更优雅的方法来设计它。

4
射击前计算轨道周围的导弹轨迹
我正在使用Unity3D构建游戏。这是《重力战争》的副本。玩家和AI炮塔都向对方发射导弹(给出一个角度和一个Power变量),试图不使导弹坠落在行星上。但是,这是我的问题:在考虑导弹的引力的同时,如何使AI在射击导弹之前先计算功率和角度?

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} 如何在此方程式中增加空气阻力以适当影响高尔夫球的速度?我不知道该怎么做,有人处理过类似的方程式吗?

4
查找导弹和位图地形的交点的最有效方法是什么?
在回答了我先前关于查找2D位图地形的坡度的问题后,我现在需要了解在导弹上击中的2D地形上找到点的最佳方法。显然,我可以看到导弹下方是否有任何像素与地形相交,但是可以说它已经深入到地形中。 返回到最初碰撞位置的最佳方法是什么?我可以一次将X像素移回导弹的先前位置,但是X的一个好值是多少?还有更聪明的方法吗?也许移动一半的距离,然后移动四分之一,等等?

2
恒定时间制导导弹
我正在用玩家和导弹制作游戏。 我想从P1向P2发射导弹。导弹应始终仅花费五秒钟即可到达P2。导弹还应该跟踪P2。如果P2移得更远,则导弹必须加快速度以满足时序约束。如果P2向左移动,则导弹必须向左移动(并同时改变速度)。如果P2靠近P1,则导弹必须减速。 这可能吗?做到这一点的最佳方法是什么? 我目前没有Vector2D类(这实际上不是游戏,但是类推效果很好),因此,如果可能的话,我想要一个不需要的解决方案。 编辑:这实际上也不是导弹。:) 谢谢!

2
如何找到弹丸的发射角度?
我正在制作一个2D游戏,其中各单位互相射箭。我知道射手和目标的位置以及弹丸的初始速度。我想知道弹丸落在目标上的角度。目标的高度可能与射手的高度不同。 综上所述,我知道v0,R和g,我需要找到角度(或高度?)。 我阅读了http://en.wikipedia.org/wiki/Projectile_motion,但是找不到与我需要的东西相关的东西。
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.