gpt4 book ai didi

java - 玩家坠落系统(基本上是重力)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:31:13 29 4
gpt4 key购买 nike

我正在制作一款类似于 Doodle Jump 的游戏,让您的玩家尽可能地兴奋。现在,我让我的播放器工作并移动。但是,问题是,我没有重力,也没有任何能让玩家再次掉到地上的东西。你们有这样做的想法吗?我试着让玩家获得一个恒定的力,一直被推下去,但是,它并不平滑,而且不像真正的坠落那样。我可以在制作这个玩家掉落系统方面得到一些帮助吗?

编辑:

    GRAVITY = 10;
TERMINAL_VELOCITY = 300;
vertical_speed = 0;

public void fall(){
this.vertical_speed = this.vertical_speed + GRAVITY;
if(this.vertical_speed > TERMINAL_VELOCITY){
this.vertical_speed = TERMINAL_VELOCITY;
}
this.y = this.y - this.vertical_speed;
}

我做了这个,没用,把我的播放器射到空中。

最佳答案

在现实世界中,重力会随着时间的推移以恒定量增加下落速度(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 m/s 的速度行进。 2 秒后,它将达到 19.6 m/s 的速度。 3 秒后,它将达到 29.4 m/s 的速度,依此类推。

老实说,我什至不相信我需要对此进行解释。

关于java - 玩家坠落系统(基本上是重力),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6111574/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com