[SFML] losowe wyswietlanie sie sprajta
Ostatnio zmodyfikowano 2012-10-30 20:52
DanielSC Temat założony przez niniejszego użytkownika |
[SFML] losowe wyswietlanie sie sprajta » 2012-10-30 09:18:46 Otóz chciałbym napisać aplikacje która co jakis czas wyswietlałaby sprajt w innym miejscu.O to mój kod żrudłowy: #include <SFML/Graphics.hpp> #include <cstdlib> #include <ctime>
int main() { srand( time( NULL ) ); int polozeniex =( rand() % 400 ) + 1; int polozeniey =( rand() % 400 + 1 ); sf::RenderWindow oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Np" ); sf::Image obrazek; sf::Image obrazek1; sf::Image tlo1; obrazek1.LoadFromFile( "kolo1.png" ); sf::Sprite sprajt1; sprajt1.SetImage( obrazek1 ); sprajt1.SetPosition( polozeniex, polozeniey ); sprajt1.SetScale( 1, 1 ); sf::Clock zegar; double reset; double czas = 0.50; while( oknoAplikacji.IsOpened() ) { sf::Event zdarzenie; while( oknoAplikacji.GetEvent( zdarzenie ) ) { if( zdarzenie.Type == sf::Event::Closed ) oknoAplikacji.Close(); } const sf::Input & sterowanie = oknoAplikacji.GetInput(); if( sterowanie.IsKeyDown( sf::Key::Left ) ) { sprajt1.Move( - 0.1, 0 ); } if( sterowanie.IsKeyDown( sf::Key::Right ) ) sprajt1.Move( + 0.1, 0 ); if( sterowanie.IsKeyDown( sf::Key::Up ) ) { sprajt1.Move( 0, - 0.1 ); } if( sterowanie.IsKeyDown( sf::Key::Down ) ) sprajt1.Move( 0, 0.1 ); if( sterowanie.IsMouseButtonDown( sf::Mouse::Left ) ) sprajt1.Rotate( 0.7 ); if( sterowanie.IsMouseButtonDown( sf::Mouse::Right ) ) sprajt1.SetPosition( 0.1, 0.2 ); if( zegar.GetElapsedTime() >= reset ) { zegar.Reset(); sprajt1.SetPosition( polozeniex, polozeniey ); } oknoAplikacji.Clear( sf::Color( 0, 0, 0 ) ); oknoAplikacji.Draw( sprajt1 ); oknoAplikacji.Display(); } return 0; }
|
|
DejaVu |
» 2012-10-30 09:20:26 if( zegar.GetElapsedTime() >= reset ) { zegar.Reset(); sprajt1.SetPosition( polozeniex, polozeniey ); }
Losuj po prostu w tym miejscu nową pozycję. |
|
DanielSC Temat założony przez niniejszego użytkownika |
» 2012-10-30 20:52:00 if( zegar.GetElapsedTime() >= reset ) { polozeniex =( rand() & 400 ) + 1; polozeniey =( rand() & 400 ) + 1; zegar.Reset(); sprajt1.SetPosition( polozeniex, polozeniey ); }
O cos takiego chodzi?^ |
|
« 1 » |