SFML C++ Cчетчик нажатий клавиши

232
20 декабря 2017, 22:20

При нажатии enter счетчик int am увеличивается на 1 ;

Должно быть 1 нажатие = один раз +1 но получается +x

почему?

Может быть, проблема со временем? Как исправить?

вот основной цикл

while (window.isOpen())
{
    Event event;
    while (window.pollEvent(event))
    {
        if(event.type == Event::Closed)
            window.close();
        else
        if(event.type == Event::TextEntered){
            if(event.text.unicode>=48 && event.text.unicode<=57){
                temps+=static_cast<char>(event.text.unicode);
                text2.setString(temps);
            }
        }
    }
    if (Keyboard::isKeyPressed(Keyboard::Return)){/// счетчик нажатий 
        //mas[am]=stoi(temps);
        am++;
        cout<<am;
        temps="";
        text2.setString(temps);
    }
    /*if (Keyboard::isKeyPressed(Keyboard::BackSpace)){
        int amount=temps.size();
        if(amount)temps[amount-1]=NULL;
        text2.setString(temps);
        continue;
    }*/
    window.clear();
    //window.draw(shape);
    window.draw(text1);
    window.draw(text2);
    window.display();
}
Answer 1

так попробуйте:

bool flag = true;
if (Keyboard::isKeyPressed(Keyboard::Return)) {
    if (flag) {
        mas[am]=stoi(temps);
        am++;
        cout<<am;
        temps="";
        text2.setString(temps);
        flag = false;
   }
} else {
    flag = true;
}
Answer 2

Нашел еще... можно использовать KeyReleased в лупе событий те будет считать не когда клавиша зажата а когда отпущена

if (event.type == sf::Event::KeyReleased){
            if (event.key.code == sf::Keyboard::Return){
                am++;
                cout<<am;
                temps="";
                text2.setString(temps);
            }
        }
READ ALSO
Что не так? - C++

Что не так? - C++

Здравствуйтет

164
Нахождение НОК через НОД в массиве

Нахождение НОК через НОД в массиве

Здравствуйте, помогите решить данную задачуУ меня получилось только для 6 элементов массива, а при 10 уже не получается

353
Текст под углом

Текст под углом

Приложение на андроидЕсть квадратная кнопка,на кнопку установлено изображение,при нажатии на неё поверх изображения появляется текст,как...

216
Логирование тестов RestAssured

Логирование тестов RestAssured

Как правильно логировать тесты? Можно ли в лог вывести прошел тест или не прошел? И как это сделать? Нашел вот такое

261