java - 如何让按键触发的事件只发生一次?

标签 java keyboard

免责声明:我对此很陌生,如果出现以下情况,我提前道歉: 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/

相关文章:

java - Ubuntu/Spring 3 - 语言环境的奇怪问题

java - Retrofit2 POST 请求响应返回null

java - 当要调用的函数使用类似 switch case 的条件时如何消除硬编码

java - 在生产者/消费者这样的多线程程序中,吞咽InterruptedException的目的是什么

cocoa-touch - 移动 View 时键盘不会隐藏文本字段

java - 以编程方式从 LocalizedResource.properties 中读取 key

c++ - 切换键/c++

Android EditText - 仅输入数字

c - 如何用 C 处理 Linux 控制台中按下的按键?

ios - 模拟器在不同的 xcode 版本上产生不同的结果