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

246
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++

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

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

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

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

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

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

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

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

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

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

277