SFML事件:: TextEntered无法正常工作

时间:2016-06-18 10:38:05

标签: c++ events text sfml keyevent

我正在制作一个关于图像修改的学校项目,并且我使用sfml制作类似于控制台的东西,但更多的是#34;漂亮的"。

while (window.isOpen()) {
        Event event;
        while (window.pollEvent(event)) {

            if (event.type == Event::Closed)
                window.close();
        }
        if (event.type == sf::Event::TextEntered)
        {
            //display text on screen
        }
    }

问题在于,当我在显示屏上很快按下某个键时,看起来好像我已经长时间按住了这个键...

示例:按G,期望在​​屏幕上只看到1 G,但在屏幕上看起来像20 G。

2 个答案:

答案 0 :(得分:0)

您的if属于事件轮询循环:

while (window.isOpen()) 
{
    Event event;
    while (window.pollEvent(event)) 
    {

        if (event.type == Event::Closed)
            window.close();

        if (event.type == sf::Event::TextEntered)
        {
           //display text on screen
        }
    }
}

根据您的描述,可能会出现更多问题,但您需要发布更多代码才能看到。

答案 1 :(得分:0)

我认为这是因为按键时始终传输信号,所以 试试这个:

sf::RenderWindow window(...);
window.setKeyRepeatEnabled(false);
while(...)
{
    stuff...
}