水平发射轨迹运动

时间:2012-01-13 17:41:11

标签: android game-physics physics

我有点被我的想法困在这里。我有一张我想要成就的照片。我认为这是最好的解释方式。

enter image description here

红点是起始位置。我希望他们所有人都能在地面上击中相同的斑点,而从一开始就用抛物线移动。可悲的是,我不是那个伟大的数学极客让这个工作。路径始终保持不变非常重要。我不知道我是否可以用简单的物理(重力)Box2D完成这个。 谢谢你的任何提示!

编辑:我可能认为这可以通过给予对象相同的速度但不同的x速度来实现。但这将有点硬编码..仍然寻找一些实际的答案:/


我尝试了一些数学公式,但我不能按照我想要的方式工作:/。

使用那些:

x = v t cos(alpha) y =(v t sin(alpha)) - (0.5 * g * t ^ 2)

2 个答案:

答案 0 :(得分:0)

我不知道我是否允许回答我自己的问题..

我只是想让你知道我现在使用的解决方案。它不是最佳的,但我猜它有效:

我已经实现了一个Time.class来保存deltaTime。在我的Enemy课程中,我得到了这个运动:

    distance = 100;
    vY = targetTime*gravity*0.5f;
    vX = distance / targetTime;

并在更新方法中:

      x += vX * Time.deltaTime;
      y -= vY * Time.deltaTime;

      vY -= gravity;
      if(y >= 280)
        vY = -vY;

所以在击中地面后我只需转动y速度。这在我的情况下特别有用,因为重力在一段时间后重新开始并让敌人回到地面。 它仍然是硬编码但我不知道比这更好。

答案 1 :(得分:0)

显然,您没有考虑到您的矢量线性物质线。它是向量线性平行,其中将提供您精确定位要固定的引脚的点。 即,你在一个好的硬下落的精确点上的起落是你想要的结果。必须有重复下降,并且只有在考虑向量线性平行时才能这样做。