這是我在小行星改造中用於實踐的一艘船的子類代碼。這種方法的正確回報是什麼?
package comets;
public class Ship extends SpaceObject{
protected double angle;
protected double speed;
public Ship(double xPos,double yPos,double xVel,double yVel){
super(xPos, yPos, xVel, yVel, 10);
}
public void accelerate(){
this.xVelocity+=.1*Math.sin(angle);
this.yVelocity+=.1*Math.cos(angle);
}
public double getSpeed(){
return speed=Math.sqrt(Math.pow(this.xVelocity, 2)+Math.pow(this.yVelocity,2));
}
public Shot fire(){
//need to return a shot
return null;
}
public double getAngle(){
return angle;
}
public void rotateLeft(){
angle+=.1;
}
public void rotateRight(){
angle-=.1;
}
}
正如你所看到的,我不知道如何返回公開的Shot fire()方法。我現在將它返回null,但我需要它返回Shot,以便遊戲中的船可以發射子彈。貝婁是射擊類,我有射擊定義的構造函數。
package comets;
public class Shot extends SpaceObject{
protected int counter=0;
public Shot(double xPos,double yPos,double xVel,double yVel){
super(xPos, yPos, xVel, yVel, 3);
}
public int getAge(){
return counter;
}
public void move(){
counter++;
super.move();
}
}
任何幫助將不勝感激謝謝。
那麼...什麼阻止你計算鏡頭的速度? –
@DennisMeng我認爲它已經由SpaceObject超類'super(xPos,yPos,xVel,yVel,3)完成了;'......澄清需要@ user2613088 –