更具体地说,我想将Coin
置于这样的模式中,即玩家可以在一次跳跃中收集所有硬币。我在油漆(黄色圆圈=硬币)中画了一张小图片来证明我的意思:
有没有任何'技巧'我可以用?我找到了我需要的方程式,但它们都需要飞行时间(时间不用于我的跳跃方法)
答案 0 :(得分:1)
要计算跳跃运动员角色的确切轨迹,您需要简单的物理学。我不确切知道你有什么开始参数,但很可能你知道你的玩家跳跃时的水平和垂直速度(速度)以及" gravity"作为垂直加速度:
Horizontal velocity: vx [pixels per second]
Vertical veloctiy: vy [pixels per second]
Gravity: a [pixels per second^2]
玩家的位置随时间而变化,可由两个函数x(t)
和y(t)
定义。由于我们只想查看跳跃运动,我们在跳跃开始时将t
设置为零。
幸运的是,这两个功能是完全独立的。水平移动是线性的:
x(t) = vx*t
垂直运动因重力影响而更加复杂:
y(t) = vy*t - (a/2)*t^2 = t*(vy - t*a/2)
几乎完成了。我们唯一需要确定的是跳跃的时间范围。所以问题是:玩家什么时候再次降落在地板上?或换句话说:何时y(t)
为零?
很容易看出y(t)
有两个根:t1 = 0
和t2 = 2*vy/a
。
所以跳跃的时间范围是[0, 2*vy/a]
。