免责声明:我对此很陌生,如果出现以下情况,我提前道歉: 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;
}
}
现在, super 英雄的 Action 处于无限循环中,但如果我在这里重置 key :
if(move == Key.SPACE) {
if (space == 0) {
space = 1;
canvas.resetKey();
}
用户可以一次又一次地使用超能力。任何帮助将不胜感激!
最佳答案
在第三行中,您编写了 int space=0
,因此您的变量不断重置为 0...
您必须在其他地方初始化它(程序的开头是放置任何全局变量的好地方)。
关于java - 如何让按键触发的事件只发生一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41072677/