c++ - 函数被多次调用

标签 c++ sfml game-development

因此,在跟踪用户输入的游戏循环功能内部被多次调用。我猜这是因为游戏循环每秒进行40次迭代,如果我按住键0.5秒,函数会被调用20次。我也尝试通过sfml事件来处理此问题,但是window.setKeyRepeatEnabled(false)无法正常工作。我该如何解决?

//this gets called 20-30times
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
{
    leftPlayerPoints++;
}

最佳答案

使用两个 bool(boolean) 标志:一个用于检查是否按下键,另一个用于检查操作是否已经发生。
简而言之

if (key_is_pressed)
{
    if (!action_have_happened)
    {
        // Perform action...
        action_have_happened = true;
    }
    // Else: Action have already happened this key-press, don't do it again
}
释放键后,将两个标志都重置为false

关于c++ - 函数被多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62498071/

相关文章:

c++ - CMAKE 找不到 GUROBI 外部库

c++ - 默认参数问题

c# - Visual Studio 与 Unity 不对应

voip - Mumble/Murmur 服务器端录音

c++ - 从工作线程调用主线程回调函数

c++ - 给我的COCOS2D-X跨平台之谜

c++ - SFML 和代码:: block 0xc00000be

c++ - SFML 网络问题

C++/OpenGL/SFML 顶点着色

python - 我应该将我的游戏放在 pygame 类中吗?