現在作成中のタワーディフェンスゲームで困っています。エラーが発生しているコードの一部を以下に投稿しました。
その要約は、charMenu に入るボタンまたはゲームを終了するボタンがある mainMenu でゲームを開始することです。この画面は完全に正常に読み込まれます。
クリックして charMenu に移動すると、「charMenu.draw(g)」の行で NullPointerException が発生します。メニューの 1 つだけを作成し、もう 1 つのコードを削除すると、両方で正常に動作しますが、両方のコードを有効にしようとすると、エラーが発生し、デバッグしても何ができるかわかりません。なれ。
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
}