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