【问题标题】:Opengl java bouncing entitiesOpengl java弹跳实体
【发布时间】:2018-08-04 02:40:40
【问题描述】:

您好,这实际上是我在这里的第一个问题.. 我一直在开发一个 opengl lwjgl 游戏,我正在研究实体类。我已经完成了实体跳跃(不适用于动物)但是“问题“(99.9% 肯定是我的错)是每次实体接触地形并再次跳跃时,跳跃会更高,如我录制的视频中所见,这是 jump 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));
}

【问题讨论】:

  • 好吧,我可能解释错了,我想要的只是以相同的速度和 y 增量保持跳跃始终相同

标签: java opengl lwjgl


【解决方案1】:

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

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));
    }

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 速度不会持续增加。绝对值可能,但它肯定会改变符号。因此,y 也不会不断上升。此外,这并不像一个答案,更像是一个评论。如果您想提供提示或要求澄清,请不要发布答案。
    • 您还错过了不断降低速度的velocity = velocity - 9.8 * speed 行...
    • 我解释了我自己的错误对不起,我真正想要的是一个正常的反弹效果,例如实体在我附加的链接上反弹的距离总是相同的,树会更高 o ,每次跳跃我不想,我似乎无法解决问题......
    • 不,树在每次跳跃时仍然更高
    • @Petereo:那你为什么接受这个答案?接受一个答案意味着你得到了你想要的,不需要进一步的答案。
    猜你喜欢
    • 2012-10-12
    • 2013-12-15
    • 1970-01-01
    • 2021-06-20
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多