[SFML, c++] Jednorazowe wywołanie funkcji
Ostatnio zmodyfikowano 2013-01-04 17:55
janek Temat założony przez niniejszego użytkownika |
[SFML, c++] Jednorazowe wywołanie funkcji » 2013-01-04 17:37:30 Piszę w sfml2 i w uproszczeniu mam taki kod: if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) { animation.play("left"); }
Problem polega na tym, że funkcja wywoływana jest bez przerwy gdy wciśnięty jest klawisz, przez co animacja jest rozpoczynana od nowa. Jak zrobić aby funkcja wywołała się tylko 1 raz podczas wciśnięcia klawisza? Druga sprawa jak wywołać funkcję stop() po zwolnieniu klawisza? Skorzystać z sf::Event::KeyReleased? |
|
ridic14 |
» 2013-01-04 17:55:34 Może próbuj tak: bool pressedLPM; bool clickLPM
if( sf::Keyboard::isKeyPressed( sf::Keyboard::Left ) ) { pressedLPM = true; } if( event.type = sf::Event::KeyReleased && event.key.code == sf::Keyboard::Left ) { if( pressedLPM ) { clickLPM = true; pressedLPM = false; } }
if( clickLPM ) animation.play( "left" );
clickLPM = false;
|
|
« 1 » |