Я делаю школьный проект об изменении изображения, и я использую 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.
Ваш 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
}
}
}
Из вашего описания, вероятно, что-то пошло не так, но вам нужно опубликовать больше кода, чтобы увидеть это.
Я думаю, это потому, что при нажатии клавиши сигнал всегда передается, поэтому
попробуй это :
sf::RenderWindow window(...);
window.setKeyRepeatEnabled(false);
while(...)
{
stuff...
}