我有我的代码的一部分:
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/