SFML событие :: TextEntered не работает должным образом

Я делаю школьный проект об изменении изображения, и я использую sfml, чтобы сделать что-то вроде консоли, но немного «красивее».

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

Решение

Ваш 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
}
}
}

Из вашего описания, вероятно, что-то пошло не так, но вам нужно опубликовать больше кода, чтобы увидеть это.

0

Другие решения

Я думаю, это потому, что при нажатии клавиши сигнал всегда передается, поэтому
попробуй это :

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

По вопросам рекламы [email protected]