Witam, oto fragment mojej funkcji do obsługi menu:
while( window.GetEvent( temp_event ) || !exit ) // pobieranie zdarzeń
{
if( temp_event.Type == sf::Event::Closed ) // sprawdzanie czy nie naciśnieto "krzyżyka zamknij:
{
exit=true;
}
if( temp_input.IsKeyDown(sf::Key::Up) && current_position>1 && !key_pressed) // sprawdzanie czy nie naciśnieto "UP":
{
key_pressed=true;
up();
print(window,settings_ob);
}
if( temp_input.IsKeyDown(sf::Key::Down) && current_position<4 && !key_pressed ) // sprawdzanie czy nie naciśnieto "DOWN":
{
key_pressed=true;
down();
print(window,settings_ob);
}
if (temp_event.KeyReleased)
key_pressed=false;
}
Problem polega na tym, że jak wcisne np. strzałkę w doł, ono Od razu przeskakuje do ostatniej pozycji, chciałem zablokować program tak, że przejść do góry lub nadół można tylko wtedy, że tak powiem, jeżeli klawisz został dopiero wciśnięty, a jeżeli trzymam np. cały czas daną strzałkę w dół, to i tak tylko skoczy o jedną pozycję. Mogłby ktoś poradzić jak zastosować takie coś? Z góry dzięki.