[SFML 2.0] Scrollowanie zapętlanie obrazka program
Ostatnio zmodyfikowano 2012-11-06 10:51
wojownik266 Temat założony przez niniejszego użytkownika |
[SFML 2.0] Scrollowanie zapętlanie obrazka program » 2012-11-06 10:51:13 Po uruchomieniu programu w lewym rogu okienka powinien pojawić się obrazek który przesuwa się wzdłuż lewej krawędzi okna do dołu a następnie w prawo po osi x. Po dotarciu do prawej krawędzi okna , przesuwa się pionowo w górę po osi y. To wszystko jest dokładnie tym co chciałem. Teraz pytanie- Jak zapętlić ten program aby po wykonaniu tego co wyżej napisałem wracał do punktu wyjścia i zaczynał nowy obieg? #include <SFML/Graphics.hpp> #include <cmath> #include <algorithm> const int SZER_EKR = 640; const int WYSO_EKR = 480;
int main() { sf::RenderWindow window( sf::VideoMode( SZER_EKR, WYSO_EKR, 32 ), "TabScroll" ); sf::Texture stat; stat.loadFromFile( "wrogi_statek.png" ); sf::Sprite Stat( stat ); float tab_x[ 16 ] = { 0, 40, 80, 120, 160, 200, 220, 260, 300, 340, 380, 420, 460, 500, 540, 640 }; float tab_y[ 16 ] = { 0, 40, 80, 120, 160, 200, 320, 260, 300, 340, 380, 400, 420, 440, 460, 480 }; while( window.isOpen() ) { sf::Event Event; while( window.pollEvent( Event ) ) { if( Event.type == sf::Event::Closed ) { window.close(); } } for( int i = 0; i < 16; ++i ) { if( tab_x[ i ] >= 0 && tab_x[ i ] <= 40 ) { tab_y[ i ] += 0.05; Stat.setPosition( tab_x[ 0 ], tab_y[ 0 ] ); } if( tab_y[ i ] >= 200 && tab_x[ i ] <= 40 ) { tab_x[ 0 ] += 0.05; Stat.setPosition( tab_x[ 0 ], tab_y[ 4 ] ); } if( tab_x[ 0 ] >= 600 && tab_x[ 0 ] <= 640 ) { tab_y[ 0 ] -= 0.05; Stat.setPosition( tab_x[ 0 ], tab_y[ 0 ] ); } } window.clear(); window.draw( Stat ); window.display(); } return EXIT_SUCCESS; }
|
|
« 1 » |