これは、私が練習用に作成している小惑星リメイクの船のサブクラス コードです。
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;
}
}
ご覧のとおり、public 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();
}
}
どんな助けでも大歓迎ですありがとう。