繁体   English   中英

无限循环如果暂停Java游戏

[英]infinite loop if pause java game

我有一部分代码:

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

和_input这样

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

和pauseDialog

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始终设置为true值,因此对话框出现,消失并再次出现……就像一个无限循环。 我下一步该怎么办? 谢谢。

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

还是“ _input.escape”需要为True才能暂停?

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


似乎您需要一个好的逻辑系统,以使对话框不会被多次触发。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM