所以我对我目前正在制作的塔防游戏有疑问。我已经在下面发布了我遇到错误的部分代码。
它的概要是我用 mainMenu 开始游戏,它有一个按钮可以进入 charMenu 或退出游戏。这个屏幕加载得很好。
现在,当我单击进入 charMenu 时,我在“charMenu.draw(g)”行上收到 NullPointerException。如果我只创建一个菜单并删除另一个菜单的代码,那么两者都可以正常工作,但是如果我尝试为它们都启用代码,我会收到错误并且无法调试它可以做什么是。
public class Screen extends JPanel implements Runnable {
public static boolean isMainMenu = true;
public static boolean isCharacterMenu = false;
public static MainMenu mainMenu;
public static CharMenu charMenu;
public void paintComponent(Graphics g) {
if(isMainMenu && !isCharacterMenu){ // Draws the Main Menu
mainMenu.draw(g);
}
if(isCharacterMenu && !isMainMenu){
charMenu.draw(g);
}
if(!isMainMenu && !isCharacterMenu){
//draws the actual game board.
}
}
public void run() {
while(true) {
if(isMainMenu && !isCharacterMenu){//The Main Menu
mainMenu = new MainMenu();
}
if(isCharacterMenu && !isMainMenu)
charMenu = new CharMenu();
if(!isMainMenu && !isCharacterMenu) {
//runs the game board
}