我有点被我的想法困在这里。我有一张我想要成就的照片。我认为这是最好的解释方式。
红点是起始位置。我希望他们所有人都能在地面上击中相同的斑点,而从一开始就用抛物线移动。可悲的是,我不是那个伟大的数学极客让这个工作。路径始终保持不变非常重要。我不知道我是否可以用简单的物理(重力)Box2D完成这个。 谢谢你的任何提示!
编辑:我可能认为这可以通过给予对象相同的速度但不同的x速度来实现。但这将有点硬编码..仍然寻找一些实际的答案:/我尝试了一些数学公式,但我不能按照我想要的方式工作:/。
使用那些:
x = v t cos(alpha) y =(v t sin(alpha)) - (0.5 * g * t ^ 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)
显然,您没有考虑到您的矢量线性物质线。它是向量线性平行,其中将提供您精确定位要固定的引脚的点。 即,你在一个好的硬下落的精确点上的起落是你想要的结果。必须有重复下降,并且只有在考虑向量线性平行时才能这样做。