[SFML] Problem z mierzeniem czasu ile sekund wciśnięty jest przycisk.
Ostatnio zmodyfikowano 2013-09-07 20:18
ison |
» 2013-09-07 18:48:54 Jeśli nie chcesz gubić eventów ale działa co jakieś 50 -te kliknięcie przycisku |
to nie można. |
|
Bimbol |
» 2013-09-07 19:32:28 Pokazałem prosty przykład, jeśli implementujesz to do swojej gry, to nie w ten sposób. To powinno znaleźć się w pliku nagłówkowym z klasą Pilka. enum Key { PRESSED, RELEASED }; Ten kod dobrze było by umieścić jako prywatne pola klasy Pilka, bo i tak odwołujesz się do nich w metodzie. Key Space; sf::Clock clock; W konstruktorze ustaw Space na RELEASED. No i metoda strzalPilki, nieco zmodyfikowana, bez argumentu sf::Clock & clock , bo będzie nie potrzebny. bool Pilka::strzalPilki( float predkosc, sf::RenderWindow & okno, sf::Event & event ) { if( event.type == sf::Event::KeyPressed ) if( event.key.code == sf::Keyboard::Space ) { if( Space != PRESSED ) { clock.restart(); Space = PRESSED; cout << "Wcisnieto spacje" << endl; } } if( event.type == sf::Event::KeyReleased ) if( event.key.code == sf::Keyboard::Space ) { Space = RELEASED; cout << "Trzymales spacje przez: " << clock.restart().asSeconds() << endl; } return true; } Gra.cpp sf::Clock clock; while( okno.isOpen() ) { gracz[ 0 ].graczMove( 1 ); gracz[ 1 ].graczMove( 2 ); Pilka.poruszajPilka(); gracz[ 0 ].kolizjaGraczGracz( gracz ); Pilka.kolizjaGraczPilka( gracz[ 1 ], 1 ); Pilka.kolizjaGraczPilka( gracz[ 0 ], 0 ); gracz[ 0 ].poruszajGracz( gracz[ 0 ].getPredkosc() ); gracz[ 1 ].poruszajGracz( gracz[ 1 ].getPredkosc() ); Pilka.isPilkaInBoisko( oknoKolizje ); gracz[ 0 ].isInBoisko( oknoKolizje ); gracz[ 1 ].isInBoisko( oknoKolizje ); while( okno.pollEvent( zdarzenie ) ) { Pilka.strzalPilki( 10, okno, zdarzenie ); }
Nie mam pojęcia czy to zadziała, w tym już twoja głowa. |
|
kubawal |
» 2013-09-07 19:37:58 Jeszcze parę uwag nt. stylu: Nazwy metod pisz po angielsku, a jak nie umiesz to po polsku, a nie mieszanką :) enum Key { PRESSED, RELEASED };
|
Szybciej, prościej i czytelniej było by zastosować bool |
|
domin568 Temat założony przez niniejszego użytkownika |
» 2013-09-07 20:18:42 Bardzo dziękuję za trafną odpowiedź Bimbol !! :) Co do stylu w następnym projekcie postaram się nazywać poprawnie :p |
|
1 « 2 » |