我正在制作一个关于图像修改的学校项目,并且我使用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。
答案 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...
}