Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Miganie animacji w sfml

Ostatnio zmodyfikowano 2016-03-10 20:45
Autor Wiadomość
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
C/C++
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ę.
P-145730
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]...
.
P-145738
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;
P-145793
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.
C/C++
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?
P-145878
« 1 »
  Strona 1 z 1