1

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

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

}

我想在按下向上键时加速运行,在不按下向上键时减速。我的问题是当我运行游戏时船只是向后移动。

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

4

1 回答 1

1

这是因为deccelerate()即使减速已经非常慢并且接近 0,您也会降低速度。

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

于 2013-07-27T01:17:14.600 回答