Kontener obiektów, SFML
Ostatnio zmodyfikowano 2014-01-29 15:18
Vesper7 Temat założony przez niniejszego użytkownika |
Kontener obiektów, SFML » 2014-01-28 19:01:34 Więc tak, miałem taki zamysł aby program automatycznie ładował mi obrazki w folderze, użyłem do tego kontenera i wyszło dość nie fajnie efekt jest taki, że na kolejnych elementach kontenera sprite pojawia się zniekształcony, pomniejszony bądź nie ma go wcale, kolejnym problemem jest to że gdy wczytam kilka sprintów to zamiast powiedzmy 3 pojawia się tylko jeden oto on std::vector < sf::Texture > texture; std::vector < sf::Sprite > sprite;
for( int i = 0; i < 5; i++ ) { texture.push_back( sf::Texture ); nazwa = "GFX/"; nazwa +=( i + '0' ); nazwa += ".png"; texture[ i ].loadFromFile( nazwa.c_str() ); sprite.push_back( sf::Sprite ); sprite[ i ].setTexture( texture[ i ] ); } |
|
RazzorFlame |
» 2014-01-28 19:04:11 Zacznijmy od tego że ten kod nie ma prawa się skompilować a co dopiero działać. Podaj kompletny kod bo widać, że coś kręcisz. |
|
Vesper7 Temat założony przez niniejszego użytkownika |
» 2014-01-28 19:08:13 myślałem że podanie samej funkcji wystarczy no ale dobra #include <SFML/Graphics.hpp> #include <vector>
int main() { sf::RenderWindow window( sf::VideoMode( 1600, 1200 ), "GFX" ); while( window.isOpen() ) { sf::Event event; while( window.pollEvent( event ) ) { if( event.type == sf::Event::Closed ) window.close(); if( event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Return ) window.close(); } window.clear( sf::Color::White ); std::vector < sf::Texture > texture; std::vector < sf::Sprite > sprite; for( int i = 0; i < 5; i++ ) { texture.push_back( sf::Texture ); nazwa = "GFX/"; nazwa +=( i + '0' ); nazwa += ".png"; texture[ i ].loadFromFile( nazwa.c_str() ); sprite.push_back( sf::Sprite ); sprite[ i ].setTexture( texture[ i ] ); } window.draw( sprite[ 0 ] ); window.display(); } return 0; }
[/i][/i] |
|
RazzorFlame |
» 2014-01-28 19:12:19 Człowieku, jeszcze raz ten post napisz a kod wklej między [cpp]kod[/cpp] bo coś co podałeś wyżej jest źle interpretowane (jako tekst) i kod [ i ] jest oznaczony jako kursywa...[/code] |
|
MrPoxipol |
» 2014-01-28 19:16:10 Co klatkę ładujesz tekstury.. |
|
Vesper7 Temat założony przez niniejszego użytkownika |
» 2014-01-28 19:18:27 na razie chodzi tylko o to żeby automatycznie ładował teksturę którą wybiorę w programie |
|
RazzorFlame |
» 2014-01-28 19:20:14 Nie ładuj tekstur w pętli... załaduj je przed nią. |
|
Vesper7 Temat założony przez niniejszego użytkownika |
» 2014-01-28 19:23:48 ta zmiana nie daje efektu niestety chodzi mi bardziej o problem który dzieje się w pętli i dotyczy przekazywania obiektów do kolejnych elementów konteneru trochę się pośpieszyłem wtedy z tym wrzucaniem programu całego bo go miałem trochę na klasy podzielone teraz powinno wszystko grać i widać problem tylko z tą częścią kontenerową #include <SFML/Graphics.hpp> #include <vector> #include <string>
int main() { sf::RenderWindow window( sf::VideoMode( 1600, 1200 ), "GFX" ); std::vector < sf::Sprite > sprite; std::vector < sf::Texture > texture; std::string nazwa; for( int i = 0; i < 5; i++ ) { texture.push_back( sf::Texture ); nazwa = "GFX/"; nazwa +=( i + '0' ); nazwa += ".png"; texture[ i ].loadFromFile( nazwa.c_str() ); sprite.push_back( sf::Sprite ); sprite[ i ].setTexture( texture[ i ] ); } while( window.isOpen() ) { sf::Event event; while( window.pollEvent( event ) ) { if( event.type == sf::Event::Closed ) window.close(); if( event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Return ) window.close(); } window.clear( sf::Color::White ); window.draw( sprite[ 0 ] ); window.display(); } return 0; }
|
|
« 1 » 2 3 |