public void newUnit(int type) { //fix start locations
switch(type) {
case 1:{
System.out.println(spawn);
LightUnit lw = new LightUnit();
lw.setLocation(spawn);
units.add(lw);
break;
}
case 2:{
units.add(new MedUnit(spawn));
break;
}
case 3:{
units.add(new HeavyUnit(spawn));
break;
}
}
}
我有这个switch语句,它创建一个从Baseunit派生的新单元,并将其存储在baseunit类型的数组列表(单元)中。当我第一次创建一个单位时,它会显示在它的spawn 0,0上。然而,一旦我移动单位,然后尝试创建另一个变量spawn已更新到第一个单位现在所在的位置。我不明白,因为没有再次调用该变量,而是一些如何更新它
public void move(BaseUnit e, Vector2f direction) {
e.move(direction);
turnover = true;
}
玩家有这种移动方法,将单位和新图块的位置传递给基本单位并设置其新位置,但有些人在这里如何更改。不确定在哪里寻找bug,我已经排除了渲染问题,所以我的派生类可能有问题。