我正在开展塔防游戏,现在我正在制造一波敌人。我在EnemyWave类中编写了一个创建下一波的方法。在我的主类GameScreen中,在开始新游戏时我将当前波的数量设置为0,我需要使用uptadeWave(),它在游戏循环中创建新的Wave。我无法弄清楚为什么我会得到NullPointerException。
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$("#vendorDropdown").autocomplete({
source: availableTags
});
我在run()中遇到的方法,它得到的错误符合this.wave.waveNumber = 0(应该只将waveNumber设置为0)
public void run() {
int frames = 0;
loadGame();
startGame("Level1");
while (running) {
repaint();
frames++;
waveUpdate();
enemyUpdate();
try {
Thread.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
在游戏循环中创建wave的方法
public void startGame(String level) {
createPlayer();
this.level = levelFile.getLevel(level);
this.level.findSpawnPoint();
this.map = this.level.map;
this.wave.waveNumber = 0;
}
}
开始下一波敌人的方法。
public void waveUpdate() {
if (waveID == 0) {
wave.nextWave();
waveID++;
}
这是我在StackOverflow中的第一个问题,所以如果我要放在这里更多,请告诉我。 :)