物体不再出现,我不知道为什么

时间:2016-05-26 19:41:00

标签: java arraylist

我把敌人当作一个数组[]但是我最近把它改成了一个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();
    }
}

2 个答案:

答案 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。