[SFML]Wychodzenie po za okno
Ostatnio zmodyfikowano 2015-02-07 21:05
JanekJr Temat założony przez niniejszego użytkownika |
[SFML]Wychodzenie po za okno » 2015-02-07 19:24:49 Witam. Biblioteką SFML zajmuję się drugi dzień ale całkiem dobrze mi idzie. Mam tylko jeden problem, jakie macie sposoby na to aby, grafika nie wychodziła po za okienko? To mój pierwszy temat więc proszę o wyrozumiałość :D |
|
NopeDotAvi |
» 2015-02-07 19:29:26 Chodzi Ci o to, że gdy się ruszasz to jak np. masz okno 800x600 to nie może wyjść poza 800 i poniżej 0? Jeżeli tak to musisz sam to zaimplementować. mniej więcej tak: void checkCollWithBorder( sf::Sprite & sprite ) { if( sprite.getPosition().x <= 0 ) if( sprite.getPosition().x + sprite.getTexture()->getSize().x >= 800 ) if( sprite.getPosition().y <= 0 ) if( sprite.getPosition().y + sprite.getTexture()->getSize().y >= 600 ) }
|
|
JanekJr Temat założony przez niniejszego użytkownika |
» 2015-02-07 19:36:21 Trochę tego nie rozumiem, mógłbyś rozjaśnić? |
|
pekfos |
» 2015-02-07 19:42:40 Mam tylko jeden problem, jakie macie sposoby na to aby, grafika nie wychodziła po za okienko? |
Najbanalniejszy i oczywisty sposób: sprawdzasz czy współrzędna jest mniejsza od zera, lub większa od rozmiaru okna minus rozmiar obiektu. Jeśli jest, ustawiasz sprawdzaną współrzędną na wartość, z którą była porównywana. W ten sposób obiekt zamiast wyjść poza okno, zatrzyma się przy krawędzi. I to robiłby powyższy kod, gdyby był kompletny i prawidłowo zapisany. |
|
NopeDotAvi |
» 2015-02-07 19:44:44 void checkCollWithBorder( sf::Sprite & sprite ) [ cpp ] if( sprite.getPosition().x <= 0 )
kolejne linie kodu s ą praktycznie takie same jak ta, tylko inn ą pozycj ę sprawdzamy. |
|
JanekJr Temat założony przez niniejszego użytkownika |
» 2015-02-07 21:05:40 Dzięki wielki NioeDotAvi, pomogło :D
|
|
« 1 » |