在现实世界中,重力将随着时间的推移(每秒9.8米每秒)增加一个恒定量的下降速率.您可以通过给予玩家垂直速度(当他们跳跃或从平台上掉下来)然后每次围绕主游戏循环从该值减去一个恒定量来模拟这一点,以便它们随着时间的推移而加速.你会希望对此(最终速度)设置一个最大限制,否则当它们长时间落下时它们可能会很快地达到可笑的速度.伪代码看起来像这样:
const GRAVITY = 10;
const TERMINAL_VELOCITY = 300;
object Player
{
int vertical_speed = 0;
int vertical_position;
function fall ()
{
this.vertical_speed = this.vertical_speed + GRAVITY;
if (this.vertical_speed > TERMINAL_VELOCITY)
{
this.vertical_speed = TERMINAL_VELOCITY;
}
this.vertical_position = this.vertical_position - this.vertical_speed;
}
}
编辑:每秒9.8米每秒是正确的!请不要编辑它!加速度测量为速度随时间的变化,以米/秒/秒表示.每秒9.8米每秒意味着静止物体在1秒后将加速到足以以9.8米/秒的速度行进. 2秒后,它将达到19.6米/秒的速度. 3秒后它将达到29.4米/秒的速度,依此类推.
老实说,我不相信我甚至不得不解释.