这可能是一个非常基本的问题,但我似乎无法找到任何其他文章.
无论如何,我用Java编写了一个小弹跳球程序,试图扩展我的基本技能.该计划只是一个简单的弹跳球,将会下降,并希望有一段时间反弹.原始程序工作正常,但现在我已经尝试将重力添加到程序中.重力实际上可以正常运行一段时间但是一旦弹跳变得非常小,动画在很短的时间内变得不稳定,那么球的位置就会不断减小.我试图找出问题,但我只是看不到它.任何帮助都是最受欢迎的.
public final class Ball extends Rectangle {
float xspeed = 1.0f; float yspeed = 1.0f; float gravity = 0.4f;
public Ball(float x, float y, float width, float height) {
super(x, y, width, height);
}
public void update(){
yspeed += gravity;
move(xspeed, yspeed);
if(getX() < 0){
xspeed = 1;
}
if(getX() + getWidth() > 320){
xspeed = -1;
}
if(getY() < 0){
yspeed = 1;
}
if(getY() + getHeight() > 200 && yspeed > 0){
yspeed *= -0.98f;
}
if(getY() + getHeight() > 200 && yspeed < 0){
yspeed *= 0.98f;
}
}
public void move(float x, float y){
this.setX(getX()+x);
this.setY(getY()+y);
}
}
编辑:谢谢,似乎已经排序了飘忽不定的运动.我仍然在努力想看看当它停止弹跳时我怎么能阻止我的球向下移动.现在它将移动停止弹跳然后继续向下移动通过“地板”.我认为这与我的yspeed = gravity line有关.我只是看不出如何停止运动.