我把敌人当作一个数组[]但是我最近把它改成了一个arrayList []但是由于某种原因没有任何东西显示出来,有什么想法吗?
ArrayList<Character> enemy = new ArrayList<Character>(20);
Character enty;
String[] eny = {"Eny_.png" , "eny2.png", "eny3.png"};
for (int i = 0; i < enemy.size(); i ++) {
int ranX = 700 + (int)(Math.random() * 2000);
int ranY = 100 + (int)(Math.random() * 360);
int randE = (int)(Math.random() * 2);
enty = new Character(ranX, ranY,0,0,100,25);
enty.setImage(eny[randE]);
enemy.add(i, enty);
}
for (int i = 0; i < enemy.size(); i ++) {
int ranSpeed = -1 + (int)(Math.random() * -2);
System.out.println(ranSpeed);
enemy.get(i).setVelX(ranSpeed);
enemy.get(i).getVelX();
repaint();
}
}
答案 0 :(得分:4)
因为20 in
ArrayList<Character> enemy = new ArrayList<Character>(20)
是初始容量,而不是初始大小。所以,
for (int i = 0; i < enemy.size(); i ++) {
没有做任何事情,因为enemy.size()
为零。
答案 1 :(得分:4)
构造函数new ArrayList<Character>(20)
不会创建大小为20的ArrayList
,它会构造一个空的ArrayList
,初始容量为20.因此,在第一个循环中,{{1}等于0。
如果你想添加20个敌人,只需在循环中使用常数20。