Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的重力弹跳球_Java_Gravity - Fatal编程技术网

Java中的重力弹跳球

Java中的重力弹跳球,java,gravity,Java,Gravity,可能重复: 我有一个从地上弹起的球类课程 以下是我代码的一部分: public void update(){ yPos += ySpeed; ySpeed += gravity; if(yPos > BOTTOM_OF_SCREEN){ ySpeed *= -1; } } 这个代码的问题是,当我有一个球在半空中时,它反弹得比开始时高,并且一直反弹得越来越高,但我希望它反弹到与开始时相同的高度。不要增加击球底部的速度(仅当它自由下落时): 谢谢,但那不是问题所在

可能重复:

我有一个从地上弹起的球类课程

以下是我代码的一部分:

public void update(){
  yPos += ySpeed;
  ySpeed += gravity;

  if(yPos > BOTTOM_OF_SCREEN){
    ySpeed *= -1;
  }
}

这个代码的问题是,当我有一个球在半空中时,它反弹得比开始时高,并且一直反弹得越来越高,但我希望它反弹到与开始时相同的高度。

不要增加击球底部的速度(仅当它自由下落时):


谢谢,但那不是问题所在。事实证明,我使用的是数值积分的欧拉方法,它有不精确性。事实上,上面的图表说明了我的问题。所以我不得不使用一种不同的方法(比如我正在尝试的Verlet集成)。你的问题不是关于真实的球反弹。
   void update() {
        yPos += ySpeed;

        if (yPos > BOTTOM_OF_SCREEN) {
            ySpeed *= -1;
        } else ySpeed += gravity;
    }