Acarin1995 Temat założony przez niniejszego użytkownika |
SFML 2.1 Problem z wyświetlaniem klatek animacji » 2014-08-22 16:19:27 Witam stworzyłem program który wyświetla klatki w zależności od wciśnietego klawisza i przemieszcza obiekt w danym kierunku niestety zamiast wyświetlać pojedyńcze klatki wyświetla wszytkie zawarte w pliku ktoś wie daczego? I jak to naprawić kod poniżej #include <SFML/Graphics.hpp>
int main() { int klatka( 0 ); sf::RenderWindow App( sf::VideoMode( 800, 600, 32 ), "Okienko" ); sf::Texture tekstura; tekstura.loadFromFile( "Ruch.png" ); sf::Sprite postac; postac.setTexture( tekstura ); postac.setTextureRect( IntRect( 0, 0, 16, 16 ) ); while( App.isOpen() ) { sf::Event zdarzenie; while( App.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) App.close(); if( sf::Keyboard::isKeyPressed( sf::Keyboard::Left ) ) { klatka = 4; postac.setTextureRect( IntRect( klatka * 16, 0, 16, 16 ) ); postac.move( - 16, 0 ); } else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Right ) ) { klatka = 3; postac.setTextureRect( IntRect( klatka * 16, 0, 16, 16 ) ); postac.move( 16, 0 ); } else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Down ) ) { klatka = 2; postac.setTextureRect( IntRect( klatka * 16, 0, 16, 16 ) ); postac.move( 0, 16 ); } else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) ) { klatka = 1; postac.move( 0, - 16 ); postac.setTextureRect( IntRect( klatka * 16, 0, 16, 16 ) ); } } App.clear( sf::Color::White ); App.draw( postac ); App.display(); } return EXIT_SUCCESS; }
|
|
michal11 |
» 2014-08-22 16:33:25 Spróbuj tak: postac.setTexture( tekstura ); IntRect fragment( 0, 0, 16, 16 ); postac.setTextureRect( fragment );
|
|
Acarin1995 Temat założony przez niniejszego użytkownika |
» 2014-08-23 15:19:50 Coś mi nie działa. :/ 1>------ Build started: Project: Nevermore, Configuration: Debug Win32 ------ 1> main.cpp 1>c:\projekty\nevermore_smfl\nevermore\main.cpp(12): error C2065: 'IntRect' : undeclared identifier 1>c:\projekty\nevermore_smfl\nevermore\main.cpp(12): error C2146: syntax error : missing ';' before identifier 'fragment' 1>c:\projekty\nevermore_smfl\nevermore\main.cpp(12): error C3861: 'fragment': identifier not found 1>c:\projekty\nevermore_smfl\nevermore\main.cpp(13): error C2065: 'fragment' : undeclared identifier 1>c:\projekty\nevermore_smfl\nevermore\main.cpp(26): error C3861: 'IntRect': identifier not found 1>c:\projekty\nevermore_smfl\nevermore\main.cpp(32): error C3861: 'IntRect': identifier not found 1>c:\projekty\nevermore_smfl\nevermore\main.cpp(38): error C3861: 'IntRect': identifier not found 1>c:\projekty\nevermore_smfl\nevermore\main.cpp(45): error C3861: 'IntRect': identifier not found ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
A jak z innymi klatkami bo chyba też źle coś zrobiłem? |
|
1aam2am1 |
» 2014-08-23 15:56:21 sf::IntRect |
|
Acarin1995 Temat założony przez niniejszego użytkownika |
» 2014-08-23 19:22:32 A jak to zrobić z tym, bo klatki mi się nie zmieniają? if( sf::Keyboard::isKeyPressed( sf::Keyboard::Left ) ) { klatka = 4; postac.setTextureRect( sf::IntRect( klatka * 16, 0, 16, 16 ) ); postac.move( - 16, 0 ); }
|
|
Acarin1995 Temat założony przez niniejszego użytkownika |
» 2014-08-23 20:37:58 Problem rozwiązany. Dzięki. |
|
« 1 » |