[SFML 2.1] Błąd z wykonywaniem animacji
Ostatnio zmodyfikowano 2014-01-12 10:36
domin568 Temat założony przez niniejszego użytkownika |
[SFML 2.1] Błąd z wykonywaniem animacji » 2014-01-10 21:07:25 Witam, postanowiłem napisać prosty program z wykorzystaniem animacji (mam zamiar kiedyś zrobić platformówkę). Animacja ma 6 klatek, jeżeli klikam prawą strzałkę to postać mi się porusza, ale przy najszerszej teksturze mi ją poprostu obcina :  . Z czego to wynika ? Tutaj mój kod, pokazujący jak poradziłem sobie z animacją : Hero::Hero() { heroTexture[ 0 ].loadFromFile( "stoi_prawo.png" ); heroTexture[ 1 ].loadFromFile( "stoi_lewo.png" ); heroTexture[ 2 ].loadFromFile( "1.png" ); heroTexture[ 3 ].loadFromFile( "2.png" ); heroTexture[ 4 ].loadFromFile( "3.png" ); heroTexture[ 5 ].loadFromFile( "4.png" ); heroTexture[ 6 ].loadFromFile( "5.png" ); heroTexture[ 7 ].loadFromFile( "6.png" ); heroTexture[ 8 ].loadFromFile( "1lewo.png" ); heroTexture[ 9 ].loadFromFile( "2lewo.png" ); heroTexture[ 10 ].loadFromFile( "3lewo.png" ); heroTexture[ 11 ].loadFromFile( "4lewo.png" ); heroTexture[ 12 ].loadFromFile( "5lewo.png" ); heroTexture[ 13 ].loadFromFile( "6lewo.png" ); heroSprite.setTexture( heroTexture[ 0 ] ); setPositionHero( sf::Vector2f( 0, 200 ) ); }
void Hero::animacjaChodu( int actualFPS, double frames ) { if( sf::Keyboard::isKeyPressed( sf::Keyboard::Right ) ) { static int klatka = 2; if( klatka >= 8 ) { klatka = 2; } static sf::Clock clock; double one = 1; double coIleNastepnaKlatka = one / frames; if( clock.getElapsedTime().asSeconds() * 3 > coIleNastepnaKlatka * klatka ) { heroSprite.setTexture( heroTexture[ klatka ] ); heroSprite.move( sf::Vector2f( 15, 0 ) ); klatka++; clock.restart(); } } else { heroSprite.setTexture( heroTexture[ 0 ] ); } }
|
|
MrPoxipol |
» 2014-01-11 09:30:37 |
|
RazzorFlame |
» 2014-01-11 16:52:31 Zapewne gdzieś używasz setTextureRect. |
|
domin568 Temat założony przez niniejszego użytkownika |
» 2014-01-12 10:36:46 Nigdzie w moim kodzie nie używam setTextureRect |
|
« 1 » |