1

私はJava(C#プログラマー)にかなり慣れていないので、ここで理解できない問題が発生します。くだらない英語でごめんなさい。=)

私は単純なSnakeゲームに取り組んでおり、さまざまなクラスや列挙型などがあります。問題は、MenuクラスのゲームでJFrameを呼び出しても、何も実行されないことです。コードを介してデバッグできますが、何も描画されません。Mainメソッドから直接Gameクラスを開始すれば、問題ありません。

私はそれが単純なエラーだと思います、そしてそれを見るのは愚かです。

ここにコードがあります:

マウスイベント:

else if (mouseX > 75 && mouseX < 175 && mouseY > 260
                && mouseY < 285) {
            startGame();

MenuクラスのstartGameメソッド:

public void startGame(){
    this.setVisible(false);
    game = new Game();
}

ゲームコンストラクター:

public Game() {
    super("Snake V 0.1");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(940, 620);
    setLocation(200, 200);
    addKeyListener(keyListener);
    setVisible(true);
    //this.createBufferStrategy(2);

    zeichnung.addFigur(new Field(0, 0));
    snake = new Snake(40, 300, 1);
    zeichnung.addFigur(snake);
    zeichnung.addFigur(new Diamond());

    this.getContentPane().add(jpanel);

    this.repaint();

    this.Intervall();
}

インターバル:

public void Intervall() {
    while (true) {
        try {
            snake.direction = keyListener.getDirection();
            zeichnung.checkCollision(snake);
            snake.move();
            this.repaint();
            Thread.sleep(150);
        } catch (InterruptedException e) {
            // TODO: handle exception
        }
    }
}

以前お話ししたように。Mainメソッドから直接Gameクラスを開始した場合(Game game = new Game();で単純)、問題はありません。

重要な情報を忘れないでください。

4

1 に答える 1