Miganie animacji w sfml
Ostatnio zmodyfikowano 2016-03-10 20:45
Fanatone Temat założony przez niniejszego użytkownika |
Miganie animacji w sfml » 2016-03-08 16:27:56 Witam. Postanowiłem napisać prostą grę 2d korzystając z biblioteki SFML 2.0. Zatrzymałem się chwileczkę dłużej na animacji postaci. Zrobiłem to trochę niedoskonale ale i tak jestem zadowolony, że powoli mi wychodzi. Animacja polega na wycięciu z jednego obrazka (różne ustawienie postaci w każdym kierunku 4x4) poszczególnych elementów i animacja czterech klatek. Problem polega na tym, że przy zmianie kierunku czy też przejściu z klatki ostatniej na pierwszą animacja znika na dwie klatki. Zastanawia mnie też sposób wykorzystania tego w jednej funkcji a nie jak napisałem if( Keyboard::isKeyPressed( Keyboard::Right ) ) { if( zegar.getElapsedTime() > seconds( 0.1 ) ) { if( frame < 5 ) { frame++; } else frame = 0; postac.setTextureRect( IntRect( frame * 32, 96, 32, 48 ) ); postac.move( 5, 0 ); } }
Przy każdym sprawdzeniu klawisza tak piszę. |
|
Gibas11 |
» 2016-03-08 18:52:21 Trochę mało kodu, ale może zaczynasz nową animację ze zbyt dużym frame i stąd pominięcie kilku klatek, spróbuj je zerować co zmianę animacji. Ps. kod wstawiaj w znacznikach [cpp]...[/cpp] a nie [code]... . |
|
DejaVu |
» 2016-03-09 13:08:49 masz 4 klatki a petla idzie po klatkach od 0 do 5 wlacznie. zrob po prostu:
frame++; frame%= ilosc_klatek; |
|
Fanatone Temat założony przez niniejszego użytkownika |
» 2016-03-10 20:45:53 Poeksperymentowałem z kodem i dodałem jeden konkretny warunek. if( frame >= 4 ) { frame = 0; }
Główkuje jeszcze nad tym aby po nawet jednym kliknięciu w któryś kierunek przeleciały wszystkie klatki animacji. Czy do tego będzie mi potrzebna jakaś pętla? |
|
« 1 » |