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

[Allegro] animacja chodzenia?

Ostatnio zmodyfikowano 2010-02-08 19:07
Autor Wiadomość
Sticky
Temat założony przez niniejszego użytkownika
» 2010-02-08 18:32:25
wyświetlanie:
C/C++
textprintf_ex( bufor, font, 20, 20, makecol( 200, 200, 200 ), - 1, "x = %d, y = %d", LUDEK_X, LUDEK_Y );
masked_blit( ludek, bufor, tmp * ROZMIAR_LUDKA_X, dir * ROZMIAR_LUDKA_Y, LUDEK_X, LUDEK_Y,
ROZMIAR_LUDKA_X, ROZMIAR_LUDKA_Y );
blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
clear_to_color( bufor, makecol( 255, 0, 255 ) );
blit( pole, bufor, 0, 0, 0, 0, 640, 480 );
i chodzenie:
C/C++
while( !key[ KEY_ESC ] )
{
    while( speed > 0 )
    {
        if( tmp == 0 ) {
            //chodzenie
            if( key[ KEY_UP ] ) {
                tmp = 1;
                LUDEK_Y--;
                dir = DIR_UP;
            }
            if( key[ KEY_DOWN ] ) {
                tmp = 1;
                LUDEK_Y++;
                dir = DIR_DOWN;
            }
            if( key[ KEY_LEFT ] ) {
                tmp = 1;
                LUDEK_X--;
                dir = DIR_LEFT;
            }
            if( key[ KEY_RIGHT ] ) {
                tmp = 1;
                LUDEK_X++;
                dir = DIR_RIGHT;
            }
            speed--;
        } else if( tmp < 3 ) tmp++;
        else if( tmp >= 3 ) tmp = 0;
       
P-13663
pekfos
» 2010-02-08 18:37:42
w wyświetlaniu tmp na (tmp-1) zamień.
coś źle napisałem.. wychodzisz poza bitmapę
P-13664
Sticky
Temat założony przez niniejszego użytkownika
» 2010-02-08 18:41:11
tak ludzika nie widać w ogóle:
C/C++
masked_blit( ludek, bufor, tmp - 1 * ROZMIAR_LUDKA_X, dir * ROZMIAR_LUDKA_Y, LUDEK_X, LUDEK_Y,
ROZMIAR_LUDKA_X, ROZMIAR_LUDKA_Y );
a tak podczas chodzenia wciąż miga, a po zatrzymaniu znika:
C/C++
masked_blit( ludek, bufor,( tmp - 1 ) * ROZMIAR_LUDKA_X, dir * ROZMIAR_LUDKA_Y, LUDEK_X, LUDEK_Y,
ROZMIAR_LUDKA_X, ROZMIAR_LUDKA_Y );
P-13665
pekfos
» 2010-02-08 18:49:28
zostaw jak było wcześniej:)
ile masz klatek w pliku?
P-13666
Sticky
Temat założony przez niniejszego użytkownika
» 2010-02-08 18:50:05
12 klatek, 3 na każdy kierunek
P-13667
pekfos
» 2010-02-08 18:53:28
C/C++
} else if( tmp < 2 ) tmp++;
else if( tmp >= 2 ) tmp = 0;
P-13668
Sticky
Temat założony przez niniejszego użytkownika
» 2010-02-08 18:55:55
ok nie miga :)
dzięki za pomoc.
P-13669
pekfos
» 2010-02-08 18:58:52
jak też mówiłem.. wychodzisz poza bitmapę:D
teraz możesz zamknąć temat

PS: na przyszłość: liczymy od zera
else if( tmp < 3 ) tmp++;

2 jest mniejsze od 3 ale po zwiększeniu mamy 3
licząc od zera 4(klatka poza bitmapą)
P-13670
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona