SFML 2.0 Crash gry podczas wychodzenia z pętli
Ostatnio zmodyfikowano 2013-08-13 17:03
Ezuo Temat założony przez niniejszego użytkownika |
SFML 2.0 Crash gry podczas wychodzenia z pętli » 2013-08-13 15:29:07 Witam, Ostatnio postanowiłem napisać małą pseudo-pierkę, aby troche poćwiczyć :). Jej elementem jest prosta walka turowa: gracz musi trzymać spację, aby wprawić pocisk w ruch, a gdy ten dotrze do wroga zadaje mu obrażenia oraz podświetla go. Do tego momentu wszystko działa dobrze, lecz w chwili gdy program powinien przejść z pętli 1 (tura gracza) do pęli 2 (tura wroga) gra się zawiesza. Oto kawałek kodu, o którym mówię: while( 1 ) { while( 1 ) { while( window.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) { window.close(); return 0; } if( sf::Keyboard::isKeyPressed( sf::Keyboard::Escape ) ) { window.close(); return 0; } if( sf::Keyboard::isKeyPressed( sf::Keyboard::Space ) ) KULA.move( 10, 3 ); } sf::Vector2i posXYc( KULA.getGlobalBounds().width, KULA.getGlobalBounds().height ); sf::Vector2i posSc( KULA.getGlobalBounds().left, KULA.getGlobalBounds().top ); sf::Vector2i posXYd( wilk.getGlobalBounds().width, wilk.getGlobalBounds().height ); sf::Vector2i posSd( wilk.getGlobalBounds().left, wilk.getGlobalBounds().top ); window.draw( sala ); if( posSc.x >= posSd.x && posSc.x <= posSd.x + posXYd.x && posSc.y >= posSd.y && posSc.y <= posSd.y + posXYd.y ) { window.draw( WILKczerwony ); hp -= dmg; } else window.draw( wilk ); window.draw( mag ); window.draw( KULA ); window.display(); if( hp != 20 ) break; } KULA.setPosition( 120, 220 ); while( 1 ) { } }
Dodam, że testowałem różne warunki przerwania pętli, lecz wszystkie z takim samym skutkiem. Proszę o pomoc, jestem ciekawy gdzie leży mój błąd ;) |
|
killjoy |
» 2013-08-13 16:27:20 Pętle komunikatów masz w pętli tury gracza, co powoduje nie obsługiwanie zdarzeń po wyjściu z niej i zawieszanie okienka. |
|
Ezuo Temat założony przez niniejszego użytkownika |
» 2013-08-13 17:03:30 Ok, dzięki za uświadomienie ;). |
|
« 1 » |