[SFML 2.0]Stoper
Ostatnio zmodyfikowano 2014-05-17 23:06
GGG205 Temat założony przez niniejszego użytkownika |
[SFML 2.0]Stoper » 2014-05-15 21:57:19 Cześć! Napisałem coś do odliczania czasu, ale nie działa jak trzeba. Dla argumentu w funkcji podałem 6(w sekundach liczy). Liczy do 6 i wykonuje akcje, ale potem nie resetuje się. bool Game::Timer( float time ) { timer = clock.getElapsedTime(); std::cout << timer.asSeconds() << std::endl; if( timer.asSeconds() >= time ) { return true; clock.restart(); } else return false; return false; } A tutaj część kodu, gdzie wykorzystuję funkcje Timer: case RANDOM_MOVE:
if( cDown.Timer( 6 ) == true ) { int process =( rand() % 2 ) + 1; if( process == 1 ) DIR = static_cast < DIRECTIONS >( rand() % 4 ); else { if( DIR == LEFT ) velocity.x -= 1; else if( DIR == RIGHT ) velocity.x += 1; else if( DIR == UP ) velocity.y -= 1; else if( DIR == DOWN ) velocity.y += 1; } } break; |
|
colorgreen19 |
» 2014-05-15 22:00:28 clock.restart() przenieś nad return true; |
|
pekfos |
» 2014-05-15 22:02:06 return true; clock.restart();
|
Kolejność.. |
|
GGG205 Temat założony przez niniejszego użytkownika |
» 2014-05-15 22:20:35 Niestety nie. Jakieś inne propozycje ? |
|
pekfos |
» 2014-05-15 22:22:40 |
|
GGG205 Temat założony przez niniejszego użytkownika |
» 2014-05-15 22:55:08 Jeśli chodzi o main to: int main() { RenderWindow Window( VideoMode( 640, 420, 32 ), "Spartan" ); Event zdarzenie; Game gra; Character test( "Admin", "Admin.png", 0, 0, 100, Character::NEUTRAL ); float time; Clock Timer; while( Window.isOpen() ) { time = Timer.getElapsedTime().asSeconds(); Timer.restart(); while( Window.pollEvent( zdarzenie ) ) { switch( zdarzenie.type ) { case Event::Closed: Window.close(); break; } } Window.clear( Color::Blue ); test.move( time, Character::RANDOM_MOVE, gra ); test.draw( Window ); Window.display(); } return 0; } |
|
pekfos |
» 2014-05-15 23:45:21 A jak teraz wygląda Game::Timer()? |
|
GGG205 Temat założony przez niniejszego użytkownika |
» 2014-05-16 14:01:41 Zmieniłem kolejność. A na samą górę nie dam bo mam dziwne znaki coś typu -2e.0 i coś tam dalej było. I te znaki nie rozwiązują mojego problemu bo nawet nie było by widać, że to coś odlicza. bool Game::Timer( float time ) { timer = clock.getElapsedTime(); std::cout << timer.asSeconds() << std::endl; if( timer.asSeconds() >= time ) { clock.restart(); return true; } else return false; return false; } |
|
« 1 » 2 |