Java 棋盘游戏:实现游戏暂停功能
public void mousePressed(MouseEvent e){
//游戏结束时,不再能下
if (gameOver || paused) {
JOptionPane.showMessageDialog(this, '当前处于暂停模式,请点击继续按钮继续游戏');
return;
}
String colorName=isBlack?'黑棋':'白棋';
//将鼠标点击的坐标位置转换成网格索引
xIndex=(e.getX()-MARGIN+GRID_SPAN/2)/GRID_SPAN;
yIndex=(e.getY()-MARGIN+GRID_SPAN/2)/GRID_SPAN;
//落在棋盘外不能下
if(xIndex<0||xIndex>ROWS||yIndex<0||yIndex>COLS) {
JOptionPane.showMessageDialog(this, '该位置不在界面内,请在界面内下棋');
return;
}
//如果点击的位置已经有棋子存在,不能下
if(findChess(xIndex,yIndex)) {
JOptionPane.showMessageDialog(this, '该位置已经有棋子,请重新选择位置下棋!');
return;
}
//可以进行时的处理
Point ch=new Point(xIndex,yIndex,isBlack?Color.black:Color.white);
chessList[chessCount++]=ch;
repaint();//通知系统重新绘制
//如果胜出则给出提示信息,不能继续下棋
if(isWin()){
String msg=String.format('恭喜,%s赢了!', colorName);
JOptionPane.showMessageDialog(this, msg);
gameOver=true;
}
isBlack=!isBlack;
}
代码解释:
- 添加 paused 标志位: 在代码中,添加了一个名为
paused的标志位,用于指示游戏是否处于暂停状态。 - 判断暂停状态: 在
mousePressed方法的开始,判断paused标志位是否为true。如果是,则弹出提示信息,并返回,防止玩家继续下棋。 - 弹出提示信息: 使用
JOptionPane.showMessageDialog弹出提示信息,告知玩家当前处于暂停状态,并需要点击继续按钮继续游戏。
使用说明:
- 添加暂停按钮: 在游戏界面中添加一个暂停按钮,并将其与
paused标志位绑定。按下暂停按钮后,将paused设置为true。 - 添加继续按钮: 在暂停状态下,添加一个继续按钮,并将其与
paused标志位绑定。按下继续按钮后,将paused设置为false,并允许玩家继续下棋。
其他优化:
- 使用线程: 可以使用线程来实现游戏暂停功能。在暂停状态下,暂停游戏逻辑的执行,并在按下继续按钮后恢复执行。
- 使用事件监听器: 可以使用事件监听器来处理暂停按钮和继续按钮的点击事件,并更新
paused标志位。
通过以上步骤,就可以为 Java 棋盘游戏实现游戏暂停功能,使玩家能够在游戏进行中随时暂停游戏,并通过点击继续按钮恢复游戏。
原文地址: https://www.cveoy.top/t/topic/oA6n 著作权归作者所有。请勿转载和采集!