Вот некоторые из моего кода:Создания нового объекта Изменение переменного экземпляра предыдущего объекта
PlayerInfo P1 = new PlayerInfo();
P1.setInfo(1);
System.out.println("" + P1.X + "," + P1.Y);
PlayerInfo P2 = new PlayerInfo();
P2.setInfo(2);
System.out.println("" + P1.X + "," + P1.Y);
PlayerInfo P3 = new PlayerInfo();
P3.setInfo(3);
System.out.println("" + P1.X + "," + P1.Y);
PlayerInfo P4 = new PlayerInfo();
P4.setInfo(4);
System.out.println("" + P1.X + "," + P1.Y);
игрока информация определяются как:
public class PlayerInfo{
public static int Range;
public static int X;
public static int Y;
public static int Score;
public static int Lives;
private static ImageIcon image;
public PlayerInfo(int Num){
Range = 1;
if(Num == 1){
this.X = 0;
this.Y = 0;
//System.out.println("" + X + "," + Y);
image = new ImageIcon("H:\\My Pictures\\BomberMan\\BMBlack.png");
}
else if(Num == 2){
this.X = 16;
this.Y = 0;
//System.out.println("" + X + "," + Y);
image = new ImageIcon("H:\\My Pictures\\BomberMan\\BMWhite.png");
}
else if(Num == 3){
this.X = 0;
this.Y = 16;
//System.out.println("" + X + "," + Y);
image = new ImageIcon("H:\\My Pictures\\BomberMan\\BMRed.png");
}
else if(Num == 4){
this.X = 16;
this.Y = 16;
//System.out.println("" + X + "," + Y);
image = new ImageIcon("H:\\My Pictures\\BomberMan\\BMBlue.png");
}
Score = 0;
Lives = 3;
}
Прямо сейчас мой код отображается:
0,0
16,0
0,16
16,16
когда следует отображать:
0,0
0,0
0,0
0,0
потому что P1.X и P1.Y инициализированы как 0 и 0 и не должны меняться в моем коде. Я понятия не имею, почему он меняет значения P1.X и P1.Y, когда я их вообще не трогаю. Может кто-нибудь, пожалуйста, объясните мне это? Примечание. Я попытался создать отдельный метод для установки информации и массива PlayerInfo, но ничего не работает. Заранее спасибо.