我正在尝试通过 for 循环来实现“一波”敌人。基本上,当调用wave对象时,它接受一个int来设置wave中敌人的数量。每个敌人都有自己的类别,是“敌人”的子类。我所困扰的是如何在 Wave 构造函数中传递第二个参数来设置创建哪个敌人子类,例如在一种方法中创建 25 个“兽人”或 13 个“巨魔”。任何帮助将不胜感激。
最佳答案
听起来您想创建 Enemy 类的静态工厂方法,该方法根据参数创建新的 Enemy 对象。像这样的东西:
// EnemyType is an enum
public static Enemy createEnemy(EnemyType enemyType) {
switch (enemyType) {
case BASIC_MONSTER:
return new BasicMonster();
case ORC:
return new Orc();
case TROLL:
return new Troll();
case ..... // etc...
}
}
注意,我会使用更简洁的参数,例如枚举,而不是 int,以确保传入的参数是正确的。否则,您可能会面临传递诸如 -24232 之类的无意义 int 的风险。
关于java - 创建多个子类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14910185/