试图将一个物体(导弹的坐标)添加到ArrayList,但它只添加了最后一个。 ArrayList中只有一个对象。
导弹类
public ArrayList<Missilies> missilies = new ArrayList<Missilies>();
// New missile object ////////
public Missilies(int x, int y){
// missilies = new ArrayList<Missilies>();
this.x=x;
this.y=y;
visible=true;
}
public void fire(){
System.out.println("Fire !!!");
missilies.add(new Missilies(x,y));
System.out.println(" New missile added, total="+
+missilies.size()+" missile "+missilies);
}
玩家类。 现在它有效。
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()){
case KeyEvent.VK_SPACE:{
if (lastKey == null || lastKey != e.getKeyChar()) {
lastKey = e.getKeyChar();
Missilies m = new Missilies(x,y);
m.fire();
missilies.add(m);
System.out.println("Missilies "+missilies);
System.out.println("keyPressed: " + lastKey);
}
答案 0 :(得分:3)
通过将导弹列表放在Missilies
级别中,你可以使每枚导弹都有自己的列表 - 而导弹本身就是其中唯一的导弹。您需要将列表的声明移动到另一个类。
答案 1 :(得分:0)
尝试在导弹类之外移动fire方法或列表声明,您将获得列表中填充的所有导弹对象