繁体   English   中英

再次执行动作之前的计时器

[英]Timer before executing action again

在switch语句中,我有一个案例,它代表游戏中的注销按钮。 问题是,如果玩家反复单击它并在其上执行c.logout()方法一次又一次导致我的游戏出现大量滞后。 我想添加一个计时器,然后播放器才能再次单击该按钮。 我对线程和计时器还很陌生,因此我非常感谢您的帮助。 特别是如果您能解释的话。 非常感谢。

这是我的代码

    case 9154: // Logout Button
        c.logout();
        break;

赖安的解决方案

只需简单地将布尔值保持为跟踪状态即可。

case 9154: // Logout Button
    if (loggedIn) {
        loggedIn = false;
        c.logout();
    }
    break;

您可以保留其状态的变量:

case 9154: // Logout Button
    if (loggedIn) {
        loggedIn = false;
        c.logout();
    }
    break;

然后在他们登录时将loginIn设置回true。

也许您不必启动新线程,只需使用锁来防止两次调用注销即可。

以下是第一个Google搜索结果之一:

http://tutorials.jenkov.com/java-concurrency/locks.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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