[SFML 2.0] Klasa Clock
Ostatnio zmodyfikowano 2014-02-07 22:33
PCS Temat założony przez niniejszego użytkownika |
[SFML 2.0] Klasa Clock » 2014-02-07 20:54:18 Witam, tak jak w temacie. Nie mogę się wczytać w tę dokumentację. Mianowicie, jakie jest zastosowanie tej klasy w grach, widzę np. linie kodu: while( !cSnake.exit ) { sf::Time czas = clTime.getElapsedTime(); sf::Event event; while( window.pollEvent( event ) ) { if( event.type == sf::Event::KeyReleased ) { switch( event.key.code ) { case sf::Keyboard::Left: cSnake.sterowanie( - 1 ); break; case sf::Keyboard::Right:. cSnake.sterowanie( 1 ); break; case sf::Keyboard::Escape: cSnake.exit = true; break; case sf::Keyboard::Up: cSnake.speedUp(); break; case sf::Keyboard::Down: cSnake.speedDown(); break; } } } if( czas > sf::seconds( cSnake.predkosc ) ) { cSnake.move(); clTime.restart(); } window.clear(); cSnake.draw( window ); window.display(); } } [ / cpp ]
Nie wiem jakie ma zastosowanie akurat tutaj. Jakby ktoś mógłby to wyjaśnić o co biega, jak i za co odpowiedzialne są pogrubione linie kodu byłbym wdzięczny. sf::Time czas = clTime.getElapsedTime();[ / b ] if (czas > sf::seconds(cSnake.predkosc)) clTime.restart(); |
|
MrPoxipol |
» 2014-02-07 20:59:42 Jeśli minie odpowiedni czas, resetuj zegarek i licz od nowa i tak na okrągło.
sf::Time sf::Clock::getElapsedTime() - zwraca czas jaki upłynął od zresetowania zegarka. sf::Time sf::Clock::restart() - restartuje zegarek i zwraca to samo co metoda wyżej. Żeby zobaczyć co znaczy sf::seconds(1) odwiedź dokumentacje i klasę sf::Time. |
|
PCS Temat założony przez niniejszego użytkownika |
» 2014-02-07 21:07:29 Yhm, a jaki jest ten "odpowiedni czas" i co ona liczy, i na co resetuje na okrągło. Może inaczej, jakie mają powiązanie te trzy linie kodu z pętlą While(o ile ma) i o co chodzi z tym warunkiem w if. |
|
MrPoxipol |
» 2014-02-07 21:18:26 sf::Time czas = clTime.getElapsedTime(); - czas od ostatniego resetowania if( czas > sf::seconds( cSnake.predkosc ) ) { cSnake.move(); clTime.restart(); } Jeśli upłynął czas, którym jest tu prędkość węża, to wtedy poruszamy wężem i resetujemy zegar. |
|
PCS Temat założony przez niniejszego użytkownika |
» 2014-02-07 22:33:19 Dzięki wielkie za wyjaśnienie, teraz to kminie. |
|
« 1 » |