java - 如果暂停java游戏则无限循环

标签 java

我有我的代码的一部分:

while(_running){
   // render screens 
     if( _input.escape) {
          if( isPaused ) {                  
                 pauseDialog.setVisible(false);
                 remuse(); // set isPaused = false, _running = true and render screens
           }
           else {
                 pause(); // set isPaused = true and _running = false and render screens                        
                 pauseDialog.setVisible(true);
          }
     }
}

和_这样输入

public void keyPressed(KeyEvent e) {
    keys[e.getKeyCode()] = true;
}
@Override
public void keyReleased(KeyEvent e) {
    keys[e.getKeyCode()] = false;   
}

和暂停对话框

public class PauseDialog extends JDialog{
JButton b1,b2;
public PauseDialog() {
    setLayout(new GridLayout(2, 1,8,8));
    setSize(new Dimension(85, 180));
    setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    b1 = new JButton("resume");
    b2 = new JButton("exit");

    b1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            System.out.println("resume");               
        }
    });
    b2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            System.out.println("exit");
        }
    });             
    add(b1); add(b2);
}

但是如果我在释放转义键时为pauseDialog设置visible(true),则变量_input.escape始终设置为真值,因此对话框出现并消失并再次出现......就像无限循环一样。接下来我应该做什么?谢谢。

最佳答案

按下 Escape 后将“_input.escape”设置为 False?

或者“_input.escape”是否需要为 True 才能发生暂停?

如果是这样,则意味着出现了问题,因为您不需要按住 Escape 来保持游戏暂停?

<小时/>

看来您需要一个良好的逻辑系统,以便对话框不会被多次触发。

也许检查它是否已经触发并且不再触发它?

关于java - 如果暂停java游戏则无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53385889/

相关文章:

java - 如何从 HTML 文件添加或调用 java 代码?

java - 将方法提交到 ExecutorService Java

java - JSF-xmlns :h not being recognized?

java - 类型不匹配 : cannot convert from List<capture#2-of ? 将 IDto> 扩展为 List<FollowingResponseDto>

Ant 构建中的 Javadoc 任务失败

java - 使用 DOM 解析时如何识别 xml 结束标记?

Java,在swing应用程序中保持全局数据库 session

java - 实例初始化程序可以抛出异常吗?

java - 如何正确 append 到 JTextPane

java - 如何在 Java 中比较日期并忽略时区