2012-01-13 49 views
1

我有点卡在这里与我的想法..我有我想要完成的图片。我认为它是解释的最佳方式。水平发射轨迹运动

enter image description here

红点的起始位置。我希望他们都能在地面上击出相同的点,而从一开始就以抛物线运动。可悲的是,我不是一个数学极客的伟大,以实现这个工作。路径总是保持不变是很重要的。我不知道我是否可以用简单的物理学(重力)Box2D来实现这一点。 感谢您的任何提示!

编辑:我也许认为这可以通过给对象相同的y速度,但不同的x速度来完成。但是,这将是有点难以coded..still寻找一些实用的答案:/


I`ve尝试了一些数学公式,但我不能得到这个工作,我想要的方式:/。

使用的那些:

X = V COS(阿尔法) Y =(V罪(阿尔法)) - (0.5 * G * T^2)

+1

哈哈,爱你的作品;) – davogotland 2012-01-13 17:47:20

+0

by by,你的解释也意味着球的速度必须更快,他们是低。 – davogotland 2012-01-13 17:49:22

+0

不,我希望他们花费更长时间才能到达这些位置,具体取决于开始的y位置。而且我也希望他们回到这个高度,当他们在地面上时,却在一条弯曲的道路上......我的形象并不是那么棒,因为对于最上层的球来说,路径只有一半是高的。 – puelo 2012-01-13 17:53:34

回答

0

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

我只是想让你知道现在使用的解决方案。它不是最佳的,但我想它的工作原理:

我已经实现了一个Time.class来保存我的deltaTime。在我的敌人类我得到这个为运动:

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速度左右。这在我的情况下特别有效,因为重力在一段时间后重新启动并将敌人回到地面。 它仍然硬编码,但我不知道比这样做更好。