私は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();で単純)、問題はありません。
重要な情報を忘れないでください。