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;
}

代码解释:

  1. 添加 paused 标志位: 在代码中,添加了一个名为 paused 的标志位,用于指示游戏是否处于暂停状态。
  2. 判断暂停状态:mousePressed 方法的开始,判断 paused 标志位是否为 true。如果是,则弹出提示信息,并返回,防止玩家继续下棋。
  3. 弹出提示信息: 使用 JOptionPane.showMessageDialog 弹出提示信息,告知玩家当前处于暂停状态,并需要点击继续按钮继续游戏。

使用说明:

  1. 添加暂停按钮: 在游戏界面中添加一个暂停按钮,并将其与 paused 标志位绑定。按下暂停按钮后,将 paused 设置为 true
  2. 添加继续按钮: 在暂停状态下,添加一个继续按钮,并将其与 paused 标志位绑定。按下继续按钮后,将 paused 设置为 false,并允许玩家继续下棋。

其他优化:

  1. 使用线程: 可以使用线程来实现游戏暂停功能。在暂停状态下,暂停游戏逻辑的执行,并在按下继续按钮后恢复执行。
  2. 使用事件监听器: 可以使用事件监听器来处理暂停按钮和继续按钮的点击事件,并更新 paused 标志位。

通过以上步骤,就可以为 Java 棋盘游戏实现游戏暂停功能,使玩家能够在游戏进行中随时暂停游戏,并通过点击继续按钮恢复游戏。

Java 棋盘游戏:实现游戏暂停功能

原文地址: https://www.cveoy.top/t/topic/oA6n 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录