我需要一些帮助来实现我正在研究的小行星克隆的加速和减速方法。
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;
}
}
我希望在按下向上键时加速运行,在没有按下时减速。我的问题是,当我运行游戏时,船只会向后移动。
有没有人对我在方法中运行的数学有任何建议或更好的实现方法?感谢。
答案 0 :(得分:1)
这是因为即使deccelerate已经很慢并接近0,你的deccelerate()
也会降低速度。
在检查速度不会低于0之前,你不应该降低速度。如果减少它然后进行检查(并返回),那么如果spead低于0,即使你返回,速度仍然不足0 ...但是你已经将它设置为0 .....所以看起来很正常它会向后移动