我有两类,一类称为士兵,一类称为战场,士兵可以在战场参数指定的战场尺寸内的任何位置生成

将Soldier对象置于x和y轴上的变量是:

private double xPos;
private double yPos;


这些属于士兵类

在战场上产生士兵对象的方法是

public Soldier(double speed) {
    this.speed = speed;
    xPos = (int) (Math.random() * Battlefield.getX());
    yPos = (int) (Math.random() * Battlefield.getY());
}


在战场上

private static double x;
private static double y;

public static double getY() {
    // TODO Auto-generated method stub
    return y;
}

public static double getX() {
    // TODO Auto-generated method stub
    return x;
}


主要方法

public class Battle {
    //Main method where three battles are run.
    public static void main(String[] args) {
        Battlefield k = new Battlefield(100, 100);
        Battlefield b = new Battlefield(100, 100);
        Battlefield c = new Battlefield(100, 100);
    }
}


我遇到的问题是这种处理方式导致第一个对象没有任何坐标,此后的一切似乎都很好,但是为什么呢?

最佳答案

从主类来看,您似乎希望每个战地都有自己的状态...因此,请不要将Battlefield.x和Battlefield.y设置为静态,否则它们将完全相同。

《战地风云》的构造函数在哪里?

09-09 17:35