我把敌人作为一个数组[],但我最近把它改成了一个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();
}
}
因为 20 in
ArrayList<Character> enemy = new ArrayList<Character>(20)
是初始容量,而不是初始大小。 所以
for (int i = 0; i < enemy.size(); i ++) {
没有做任何事情,因为enemy.size()
为零。
构造函数
。 new ArrayList<Character>(20)
不会创建大小为 20 的ArrayList
,而是构造一个初始容量为 20 的空ArrayList
。因此,在第一个循环中,enemy.size()
等于 0。
敌人,只需在你的循环中使用常数20