免责声明:我真的很陌生,如果有以下情况,我会提前道歉: 1)我的问题已被提出(我已经尝试过搜索并且在找到我需要的东西时遇到了很多麻烦) 或2)如果我没有正确地提出问题。
基本上,我正在尝试制作一款游戏,按下空格键会触发一种“超级能量”,只会执行一次动作。之后,如果他们试图再次按下它,它会运行某种对话框,说明他们的一次性超级力量已被使用。
我有什么:
try {
Key move = canvas.getLastKey();
int space = 0;
if(move == Key.SPACE) {
if (space == 0) {
space = 1;
}
if (space == 2){
JOptionPane.showMessageDialog(null, "superpower already used");
}
}
if( space == 1 ) {
//action here
canvas.resetKey();
space = 2;
}
}
现在,超级英雄动作正处于无限循环中,但如果我在此处重置密钥:
if(move == Key.SPACE) {
if (space == 0) {
space = 1;
canvas.resetKey();
}
用户可以一次又一次地使用超级电源。任何帮助将不胜感激!
答案 0 :(得分:1)
在第三行中,您已写入int space=0
,因此您的变量将不断重置为0 ...
你必须在别处初始化它(程序的开头是任何全局变量的好地方)。
答案 1 :(得分:0)
您应该考虑在try块之外移动int space = 0。我想你的try块会被重复调用,所以你应该在全局范围内声明这个变量。