2011-03-24 32 views
2

我是OOP的新手,我正在尝试做一个简单的游戏来帮助我学习Java。我的想法是制作一个敌人的课程,但我希望敌人的数量是动态的。我试图使一个新的对象作为一个数组,而不是手动键入attker1 attker2等等...数组中的对象,可以完成吗?

Mole attacker[3]; 
attacker[0] = new Mole(); 
attacker[1] = new Mole(); 
attacker[2] = new Mole(); 

我希望你得到什么,我试图做的想法。我试着搜索谷歌,但我不断收到有关如何使数组超出常规数据类型(即int,char等)的教程。无论我想要做什么,我都想知道它叫什么。如果还有更好的方法,我也会听。

谢谢。

回答

3

数组是完全正常的(事实上,往往使用非基本数据类型的简单数组更多)。

所以,如果你想让敌人的数量成为动态的,你可能想要使用一个Container类 - 特别是一个可调整大小的数组。看看类矢量,ArrayList等

另请注意(我看到Android标签),在绘图循环中创建新对象可能会导致垃圾收集器被调用,并在工作时减慢帧率 - 被警告。

你有什么的变化:

//create enemies 
Mole enemies[3]; 
enemies[0] = new Mole(); 
enemies[1] = new Mole(); 
enemies[2] = new Mole(); 

//an enemy dies! 
enemies[1] = null; 

//and comes back to life! 
enemies[1] = new Mole(); 

//do something with your enemies.... 
+0

为避免垃圾收集器在运行时运行,可以使用内存池模式 - > http://gameprogrammingpatterns.com/object-pool.html。 – Wroclai 2011-03-24 07:35:41

1

在假设你正在谈论这样做在爪哇。 您是否尝试过搜索 对象列表的,自定义类 的 列表?

看看以下内容:

Interface List

Create List from Java Object Array Example

也有这样做的其他方式,如字典ArrayList的,或者如果你的对象实现其他接口,也可以选择使用其他方法,如HashSet

希望你得到列表ArrayList的一个良好的开端等对象的

相关问题