簡體   English   中英

如何計算在c ++中按下一個鍵的次數

[英]How to count the times a key has been pressed in c++

我在 Visual studious 2017 (visual c++) 中制作游戲,你必須反復按空格鍵才能賺錢。 但是我遇到了一個問題,當你快速按下空格鍵時編譯器跟不上,所以它算錯了。 我試着做一些研究,但我得到的只是這個,正如我之前所說的,它跟不上。

到目前為止,這是我得到的:

   int click_systm()
 {
char spacebar;
while (1)
{
    if (GetAsyncKeyState(VK_SPACE) != 0)
    {
        if (GetKeyState(VK_SPACE) == 0)
        {
            spacebar = _getch();

            int value = spacebar;
            if (value == 32)
            {
                money++;
                cout << money << endl;
                

            }
        }
    

    }
}


   }

如果您在這里完成,感謝您抽出寶貴時間閱讀本文:)

編譯器是將你的 C++ 代碼編譯成一些二進制文件的東西。 CPU 和操作系統應該能夠跟上人類速度空格鍵粉碎的速度。 問題可能來自您在控制台中運行您的軟件(請參閱 user253751 留下的評論)。

std::cout 由於打印需要時間而大大減慢了程序的速度。 正如評論中提到的那樣,將您的打印拆分到不同的線程中。 您還可以添加std::ios_base::sync_with_stdio(false); 如果您確實需要,可以加快速度。

對於那些有同樣問題的人,我已經找到了我自己問題的答案。 此處的代碼將執行相同的操作,但響應速度更快,並且會跟上按鈕混搭。

int click_systm()
{
 char spacebar;
while (1)
{
    
            spacebar = _getch();

            
            if (spacebar == 32)
            {
                money++;
                
                    cout << money << "\n";

    }
}


}

感謝所有試圖幫助我的人,尤其是 MrScriptX 和 Antonio。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM