Opengl java 弹跳实体

Opengl java bouncing entities

你好,这实际上是我在这里的第一个问题。我一直在开发一个 opengl lwjgl 游戏,我正在研究实体 class.I 已经完成的实体跳跃(我会用这个来做动物)但是 "issue"(99.9% 肯定是我的错)是每次实体接触地形并再次跳跃时,跳跃更高,如我录制的视频所示,这是跳跃的代码 thz =D 我只是想要树向上移动总是一样的。

Video

    double velocity = 0;
double initVelX;
double initVelZ;
double time = 0;
float x;
float y;
float z;

public void bounce() {

    double initialVelocity = 0.1;       
    double speed = 1/2500.0;

    if(time == 0) {
        velocity += initialVelocity;
    }
    time += speed;
    velocity = velocity - 9.8 * speed;
    if(y + velocity < 0.1){
        velocity *= -1;
    }
    y += velocity;
    setPosition(new Vector3f(getPosition().x,y,getPosition().z));
}

我认为这将是以下增量语句之一:

velocity += initialVelocity;
time += speed;
velocity *= -1;
y += velocity;

你希望所有这些都持续上升吗?因为那就是将会发生的事情。 您的代码的哪一部分计算跳跃的高度?

修正了它只需要做一行简单的代码,甚至速度波动都正确:

double velocity = 0;
    double initVelX;
    double initVelZ;
    double time = 0;
    float x;
    float y;
    float z;

    public void bounce() {

        double initialVelocity = 0.1;       
        double speed = 1/2500.0;

        if(time == 0) {
            velocity = initialVelocity;
        }

        time += speed;
        velocity = velocity - 9.8 * speed;
        if(y + velocity < 0.1){
            velocity *= -1;
            velocity = initialVelocity;
        }
        y += velocity;
        setPosition(new Vector3f(getPosition().x,y,getPosition().z));
    }