Объектный массив для цикла - PullRequest
0 голосов
/ 23 декабря 2011
public class Team {
    public int health;
    public int x;
    public int conflict;

}

public class Test extends Activity {
    Team enemy[] = new Team[50];
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            for(int i =0; i<enemy.length; i++){
            enemy[i].health = 0;
            enemy[i].x = -100;
            enemy[i].conflict = 0;
            }
        }
}

С циклом for моя игра вылетает, без цикла for она запускается. Что я делаю неправильно? заранее спасибо за помощь!

Ответы [ 4 ]

7 голосов
/ 23 декабря 2011

При создании массива:

Team enemy[] = new Team[50];

все записи равны null.Вам нужно инициализировать каждый элемент массива в вашем цикле:

for(int i =0; i<enemy.length; i++){
    enemy[i] = new Team(); // <-- added
    enemy[i].health = 0;
    enemy[i].x = -100;
    enemy[i].conflict = 0;
}
0 голосов
/ 23 декабря 2011

вы никогда не инициализировали элементы противника.

enemy[i] = new Team();

enemy[i].health = 0;
enemy[i].x = -100;
enemy[i].conflict = 0;
0 голосов
/ 23 декабря 2011

Вам нужно создавать новый объект Team на каждой итерации цикла

for(int i =0; i<enemy.length; i++){
        enemy[i] = new Team();
        enemy[i].health = 0;
        enemy[i].x = -100;
        enemy[i].conflict = 0;
        }
0 голосов
/ 23 декабря 2011

Вы забыли создать экземпляр enemy[i]

Вместо этого выполните следующие действия:

Team enemy[] = new Team[50];
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    for(int i =0; i<enemy.length; i++){
      enemy[i] = new Team();
      enemy[i].health = 0;
      enemy[i].x = -100;
      enemy[i].conflict = 0;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...