对象不再出现,我不知道为什么



我把敌人作为一个数组[],但我最近把它改成了一个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个

敌人,只需在你的循环中使用常数20

相关内容

最新更新