我一直试图找出如何逐渐加速按下按键的精灵,然后一旦按下琴键,逐渐减速到停止,就像小行星中的船一样.如果可能的话,我想在没有任何游戏引擎的情况下这样做.我在SO上搜索了这个并发现了相关问题,但他们并没有在我看来完全回答我的问题.
到目前为止我所想到的是:
//while the key is being pressed
//move by increasing y value
//but continue to increase the amount y increases by as you hold this down,
//until it reaches certain maxSpeed
//when the key is released, gradually decelerate to zero
我只是不确定如何正确编程,因为我只能想办法增加相同的值而不是逐渐加速.
所以这是我的目标(逐渐加速然后逐渐减速):
我是初学者,对所有想法持开放态度,但我可能没有正确处理这个问题的事实可能是因为我不像其他人那么了解
解决方法:
以前的问题几乎涵盖了这个主题,但如果你想要完美,还有一件事你需要注意:非均匀时间片,即不同持续时间的滴答.
通常,您的tick()方法应该接受当前时间和最后一次刻度的持续时间作为参数. (如果没有,那么你需要通过查询当前时间并记住最后一次滴答发生的时间来计算最后一次滴答的持续时间,这样你就可以从另一次滴答中减去一个.)
因此,在每个刻度线上,您不应该只是将当前速度添加到您的位置;你应该在每个刻度上做什么,将当前速度加上最后一个刻度的持续时间加到你的位置.
这样,如果一个嘀嗒声发生得非常快,而另一个嘀嗒声需要很长时间才能完成,那么你的宇宙飞船的运动仍将是均匀的.