Acarin1995 Temat założony przez niniejszego użytkownika |
[sfml] Nie wyświetlają się kafelki mapy » 2014-08-24 14:08:36 Witam chciałem zrobić mape kafelkową niby ładnie pięknie się kompiluje lecz nie wyświetla elementów graficznych ( kafelek ) kod poniżej: #include <SFML/Graphics.hpp> #include "Mapa.hpp" int main() { int klatka( 0 ), kafelek; int szerokoscKafla( 16 ); int dlugoscKafla( 16 ); sf::RenderWindow App( sf::VideoMode( 800, 600, 32 ), "Okienko" ); sf::Texture elementMapy; elementMapy.loadFromFile( "Mapa.png" ); sf::Sprite kafelekMapy; kafelekMapy.setTexture( elementMapy ); while( App.isOpen() ) { sf::Event zdarzenie; while( App.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) App.close(); } App.clear( sf::Color::White ); for( int y = 0; y < 10; y++ ) { for( int x = 0; x < 10; x++ ) { if( mapa[ x ][ y ] == 0 ) { kafelek = 0; kafelekMapy.setTextureRect( sf::IntRect( kafelek * 16, 0, 16, 16 ) ); int pozycjax, pozycjay; pozycjay = y * 16; pozycjax = x * 16; kafelekMapy.setPosition( pozycjax, pozycjay ); } if( mapa[ x ][ y ] == 1 ) { kafelek = 1; kafelekMapy.setTextureRect( sf::IntRect( kafelek * 16, 0, 16, 16 ) ); int pozycjax, pozycjay; pozycjay = y * 16; pozycjax = x * 16; kafelekMapy.setPosition( pozycjax, pozycjay ); } if( mapa[ x ][ y ] == 2 ) { kafelek = 2; kafelekMapy.setTextureRect( sf::IntRect( kafelek * 16, 0, 16, 16 ) ); int pozycjax, pozycjay; pozycjay = y * 16; pozycjax = x * 16; kafelekMapy.setPosition( pozycjax, pozycjay ); } if( mapa[ x ][ y ] == 3 ) { kafelek = 3; kafelekMapy.setTextureRect( sf::IntRect( kafelek * 16, 0, 16, 16 ) ); int pozycjax, pozycjay; pozycjay = y * 16; pozycjax = x * 16; kafelekMapy.setPosition( pozycjax, pozycjay ); } } } App.draw( kafelekMapy ); App.display(); } return EXIT_SUCCESS; }
I mam jeszcze jedno pytanie jak zrobić by przy dotarciu do krańca sceny pokazywał się ciąg dalszy mapy, i jaki zrobić warunek by nie dało się przejść poza mape. Za pomoc dziękuje. |
|
pekfos |
» 2014-08-24 15:04:42 Dobra tekstura? Właściwe koordynaty? I mam jeszcze jedno pytanie jak zrobić by przy dotarciu do krańca sceny pokazywał się ciąg dalszy mapy, |
Google - scrolling mapy. |
|
Acarin1995 Temat założony przez niniejszego użytkownika |
» 2014-08-24 15:39:17 Tak tekstura jest dobra wyświetla się jedynie jeden obrazek trawa prawie na środku a reszta wogóle... Co jest źle w kodzie? Kafelek ma 16x16 pix. |
|
Glazus |
» 2014-08-24 17:06:34 Po każdym kafelekMapy.setPosition( pozycjax, pozycjay ); powinieneś dodać App.draw( kafelekMapy ); . W tym momencie kilkukrotnie zmieniasz pozycję kafelka, ale rysujesz go tylko raz. |
|
MrPoxipol |
» 2014-08-24 18:59:54 Po każdym
kafelekMapy.setPosition( pozycjax, pozycjay ); powinieneś dodać App.draw( kafelekMapy ); . W tym momencie kilkukrotnie zmieniasz pozycję kafelka, ale rysujesz go tylko raz. |
Tak się nie robi. Jeden obrót pętli - jedna klatka. |
|
Acarin1995 Temat założony przez niniejszego użytkownika |
» 2014-08-24 19:08:21 Banalna sprawa zappomniałem dać draw w petli... << removed - niezwiązane z tematem >>
|
|
oputyk |
» 2014-08-24 19:10:11 |
|
« 1 » |