簡體   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