所以我正在用 Swing 构建一个游戏。我的主要游戏是在一个名为 Board 的 JPanel 中,而起始屏幕是一个名为 StartScreen 的 JPanel,我还制作了一个名为 MainPanel 的 JPanel,它具有用于在两个面板之间切换的 CardLayout 布局。
主面板:
public class MainPanel extends JPanel {
JPanel startMenu, board;
public MainPanel(){
setLayout(new CardLayout());
startMenu = new StartMenu(this);
board = new Board();
add(startMenu, "startMenu");
add(board, "board");
}
}
我的问题是,一旦我初始化了棋盘,棋盘面板的构造函数就会启动并启动一个运行游戏的线程,所以当我切换到游戏时,游戏已经开始运行了。有没有办法只有在我切换到第二个面板时才能开始游戏。
现在这是 Board 的构造函数:
public Board(){
addKeyListener(new KeyBoard());
snake = new Snake();
apple = new Apple();
thread = new Thread(Board.this);
thread.start();
}