2011-12-22 124 views
-1
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循环运行。我究竟做错了什么?感谢您提前帮助!对象数组for循环

+1

-1因为一些非常简单的调试就可以解决这个问题。 – 2011-12-22 20:31:49

回答

5

当你创建数组:

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

你忘了实例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; 
    } 
} 
0

您需要创建一个新的团队对象每次迭代的环

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

你从来没有初始化元素敌人的仇恨。

enemy[i] = new Team(); 

enemy[i].health = 0; 
enemy[i].x = -100; 
enemy[i].conflict = 0;