[英]How do I make the event triggered by a key only happen once?
免责声明:我真的很陌生,如果发生以下情况,我会提前道歉: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();
}
用户可以反复使用超级电源。 任何帮助,将不胜感激!
在第三行中,您已编写int space=0
因此您的变量不断地重置为0 ...您必须在其他位置对其进行初始化(程序的开头是任何全局变量的好地方)。
您应该考虑将int space = 0移到try块之外。 我想您的try块会被重复调用,因此您应该在全局范围内声明此变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.