我有一部分代码:
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值,因此对话框出现,消失并再次出现……就像一个无限循环。我下一步该怎么办?谢谢。
答案 0 :(得分:0)
在按Escape键之后,将“ _input.escape”设置为False吗?
或者“ _input.escape”是否需要为True才能暂停?
如果是这样,则意味着出现了问题,因为您不需要按住Escape来保持游戏暂停吗?
似乎您需要一个好的逻辑系统,以使对话框不会被多次触发。
也许检查它是否已经被触发并且不再触发?