键下功能

Key down functions

本文关键字:功能      更新时间:2023-10-16

嘿,我怎么在c++中做到这一点:我有一个变量,当我按下'+'键时,它应该增加1,但是当我按住键超过500毫秒时,变量应该开始每500毫秒增加5,而我仍然按住按钮,它应该在我释放它时停止。我知道getActiveKeyState()函数,但我似乎不能使它按我想要的方式工作。我是怎么进来的?

我不知道本地c++函数,但是SFML库是可以实现的。

if (event.type == Event::KeyPressed){
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Add))
            {
                //start counter
                if(count < 5) sum++;          
                else
                 sum+=5;
            }
        }

你可以用WinApi做同样的事情,但在这两种情况下,你都需要为你的计数器使用多线程/多处理,或者找到另一种方法来同步你的代码。你可以尝试添加Sleep(500),这将睡眠你的线程500毫秒或类似的东西。