【发布时间】:2021-11-24 03:12:03
【问题描述】:
对于我的项目,我正在设计一个包含三个级别的游戏,每个级别都设置为一个数组。完成每个级别后,游戏应自动进入下一个级别。我目前让它从第 1 级升级到第 2 级,但在完成第 2 级后,它只是再次重新加载第 2 级。我的老师说我应该使用一个变量来确定我当前的级别,并在我进入下一个级别时增加它,我正在这样做,所以我不确定为什么游戏卡在第 2 级。他提到我应该正在使用静态变量,但我不明白这与我目前所做的有什么不同。
{
private char[][] level1 = {
{'#', '#', '#', '#', ' ', ' ', ' ', ' ', ' ', ' '},
{'#', ' ', '|', '#', ' ', ' ', ' ', ' ', ' ', ' '},
{'#', ' ', ' ', '#', '#', '#', ' ', ' ', ' ', ' '},
{'#', ' ', '@', ' ', ' ', '#', ' ', ' ', ' ', ' '},
{'#', ' ', ' ', '$', ' ', '#', ' ', ' ', ' ', ' '},
{'#', ' ', ' ', '#', '#', '#', ' ', ' ', ' ', ' '},
{'#', '#', '#', '#', ' ', ' ', ' ', ' ', ' ', ' '}
};
private char[][] level2 = {
{'#', '#', '#', '#', '#', ' ', ' ', ' ', ' '},
{'#', '@', ' ', ' ', '#', ' ', ' ', ' ', ' '},
{'#', ' ', '$', '$', '#', ' ', '#', '#', '#'},
{'#', ' ', '$', ' ', '#', ' ', '#', '|', '#'},
{'#', '#', '#', ' ', '#', '#', '#', '|', '#'},
{' ', '#', '#', ' ', ' ', ' ', ' ', '|', '#'},
{' ', '#', ' ', ' ', ' ', '#', ' ', ' ', '#'},
{' ', '#', ' ', ' ', ' ', '#', '#', '#', '#'},
{' ', '#', '#', '#', '#', '#', ' ', ' ', ' '},
};
private char[][] level3 = {
{'#', '#', '#', '#', '#', '#', ' '},
{'#', ' ', ' ', ' ', ' ', '#', ' '},
{'#', ' ', '#', '@', ' ', '#', ' '},
{'#', ' ', '$', '*', ' ', '#', ' '},
{'#', ' ', '|', '*', ' ', '#', ' '},
{'#', ' ', ' ', ' ', ' ', '#', ' '},
{'#', '#', '#', '#', '#', '#', ' '},
};
public void act() {
\\game code here
if (testLevelComplete() == true) {
levelComplete();
}
}
public void levelComplete()
{
int currentLevel = 0;
currentLevel = currentLevel + 1;
showWarning("Level Complete! Current level is " + currentLevel);
if (currentLevel == 1) {
loadLevel(level1);
} else {
if (currentLevel == 2) {
loadLevel(level2);
} else {
if (currentLevel == 3) {
loadLevel(level3);
} else {
if (currentLevel > 3) {
showWarning("Level Complete! No more levels.");
}}}}
}
}```
【问题讨论】:
标签: java arrays static-variables