繁体   English   中英

如何使由键触发的事件仅发生一次?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM