【发布时间】:2015-11-10 19:33:59
【问题描述】:
我目前正在大学一年级制作游戏。我有四个敌人对象(兽人、精灵、地精和爬行动物)我想根据玩家当前所在的级别和房间创建每个敌人的对象并返回该特定敌人的对象数组。我收到错误“名称“敌人”在当前上下文中不存在”。提前谢谢你。
public Object[] level(int lev, int room){
int enemiesToCreate = 2;
enemiesToCreate += lev += room;
if (lev == 1)
{
Goblen[] enemies = new Goblen[enemiesToCreate];
}
else if (lev == 2)
{
Orc[] enemies = new Orc[enemiesToCreate];
}
else if (lev == 3)
{
Elf[] enemies = new Elf[enemiesToCreate];
}
else if (lev == 4)
{
Reptilian[] enemies = new Reptilian[enemiesToCreate];
}
// error here
return enemies;
}
【问题讨论】:
-
您有 4 个独立的
enemies变量。它们只存在于if块内。在if语句之外声明敌人。研究变量范围。或者将 return 语句移到 if 语句中。 -
你可以为你的敌人类型创建一个通用的基类或接口并返回它。它必须只声明一次,而不是在每个 if/else 分支中,例如
IEnemy[] enemies。或者你也可以return例如new Reptilian而不是赋值。使用object作为返回类型也不是您可以采用的最佳方法。