加速和减速方法的麻烦

时间:2013-07-27 00:57:38

标签: java methods

我需要一些帮助来实现我正在研究的小行星克隆的加速和减速方法。

public void accelerate(){
    //i am if an object is traveling at 10 this makes it travel slower
            if(getSpeed()>10){
        xVelocity-=.1*Math.sin(angle);
        yVelocity-=.1*Math.cos(angle);
    }           
    this.xVelocity+=.1*Math.sin(angle);
    this.yVelocity+=.1*Math.cos(angle);
}   
public void deccelerate(){

    this.xVelocity-=.1*Math.sin(angle);
    this.yVelocity-=.1*Math.cos(angle);
    if(getSpeed()<0){
        return;
    }

}

我希望在按下向上键时加速运行,在没有按下时减速。我的问题是,当我运行游戏时,船只会向后移动。

有没有人对我在方法中运行的数学有任何建议或更好的实现方法?感谢。

1 个答案:

答案 0 :(得分:1)

这是因为即使deccelerate已经很慢并接近0,你的deccelerate()也会降低速度。

在检查速度不会低于0之前,你不应该降低速度。如果减少它然后进行检查(并返回),那么如果spead低于0,即使你返回,速度仍然不足0 ...但是你已经将它设置为0 .....所以看起来很正常它会向后移动