我有一个不同级别的游戏,各个级别之间有很多共享代码。因此,我拥有包含所有共享代码的MainActivity,这会为每个级别加载一个片段LevelOne,其中包含特定于级别的代码。我需要使用片段,因为我还将其他片段与其他UI组件一起加载。
这些级别片段均包含相同名称的功能,并且每个级别具有唯一的代码,例如StartGame()和PauseGame(),MainActivity在必要时调用。我如何加载一个允许访问这些功能的对象,而不管它是什么片段?
例如。在python中,我会这样做:
// Instantiation
int level_number = 1;
levels = [levelOne, levelTwo]
level = levels[level_number]
// Something happens and I want to start the currently selected level somewhere in MainActivity
level.StartGame()
但是在Java中,我无法执行此操作,因为我必须事先指定对象的类,而我不知道,而我必须在所有引用条件的情况下都使用这些if类:
// Instantiation
LevelOne levelOne = new LevelOne();
LevelTwo levelTwo = new LevelTwo();
// Something happens and I want to start the currently selected level somewhere in MainActivity
if (level_number == 1) {
levelOne.StartGame();
} elif (level_number == 2) {
levelTwo .StartGame();
}
最佳答案
为什么每个级别都需要另一堂课?
Level levelOne = new Level(1);
Level levelTwo = new Level(2);