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

[Allegro]Wczytywanie animacji dla żądanego przycisku.

Ostatnio zmodyfikowano 2013-08-14 12:55
Autor Wiadomość
Bajt
Temat założony przez niniejszego użytkownika
[Allegro]Wczytywanie animacji dla żądanego przycisku.
» 2013-08-13 15:24:39
Witam
Jako że jeszcze nie używałem animacji w allegro nie mam doświadczenia. Przeczytałem rozdział poświęcony animacją i mam problem. Zrobiłem sobie 3 klatki animacji w których ludzik rusza ręką. Mój timer ustawiony jest na 150s. I teraz tutaj pojawia się mój problem: chcę, żeby ta animacja wyświetlała się tylko jeśli przyciśnie się klawisz ALT. Jednak animacja się nie wyświetla.
C/C++
int frame = 0;
while( !key[ KEY_ESC ] )
{
    while( speed > 0 )
    {
        //control for P1 "W,A,S,D"
        if( key[ KEY_A ] ) P1_x -= 4;
       
        else if( key[ KEY_D ] ) P1_x += 4;
       
        else if( key[ KEY_W ] ) P1_y -= 4;
       
        else if( key[ KEY_S ] ) P1_y += 4;
       
        else if( key[ KEY_ALT ] )
        {
            if( frame < 20 ) { draw_sprite( bufor, P1_01h, P1_x, P1_y ); }
            else if( frame >= 20 && frame < 40 ) { draw_sprite( bufor, P1_01h, P1_x, P1_y ); }
            else if( frame >= 40 && frame < 60 ) { draw_sprite( bufor, P1_03h, P1_x, P1_y ); }
            frame++;
            if( frame == 150 )
                 frame = 0;
           
        }
        if( P1_x == 0 ) { P1_x += 4; }
        if( P1_x == P2_x - 40 ) { P1_x -= 4;; }
       
        //control for P2 "UP,DOWN,LEFT,RIGHT
        if( key[ KEY_LEFT ] ) P2_x -= 4;
       
        else if( key[ KEY_RIGHT ] ) P2_x += 4;
       
        else if( key[ KEY_UP ] ) P2_y -= 4;
       
        else if( key[ KEY_DOWN ] ) P2_y += 4;
       
        if( P2_x == 720 ) { P2_x += 4; }
        if( P2_x == P1_x - 40 ) { P2_x -= 4; }
       
        speed--;
       
    }
    masked_blit( background, bufor, 0, 0, 0, 0, 800, 600 );
    masked_blit( P1, bufor, 0, 0, P1_x, P1_y, P1->w, P1->h );
    masked_blit( P2, bufor, 0, 0, P2_x, P2_y, P2->w, P2->h );
    blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
}
P-90154
Bajt
Temat założony przez niniejszego użytkownika
» 2013-08-13 18:34:03
Czy zna ktoś odpowiedź?
P-90186
MrPoxipol
» 2013-08-13 18:36:31
Jakby ktoś z forum znał, to by odpisał, weź nie odświeżaj, bo rozumiem jakbyś jutro to zrobił, ale nie w ten sam dzień co zadałeś pytanie...ewentualnie zadaj pytanie na stackoverflow.com lub na forum allegro (Angielski Wymagany!). Poszukaj sam rozwiązania, posiedź trochę nad kodem.
P-90187
pekfos
» 2013-08-13 19:07:41
Nie wyświetla się, bo rysujesz ją pod tłem, zamiast na nim.
P-90189
Bajt
Temat założony przez niniejszego użytkownika
» 2013-08-13 19:24:12
To znaczy? Przecież rysuję je na buforze
P-90193
pekfos
» 2013-08-13 19:26:18
..a potem wyświetlasz background, co, przy okazji, pełni rolę czyszczenia ekranu.
P-90194
Bajt
Temat założony przez niniejszego użytkownika
» 2013-08-13 19:32:28
Cóż, rysowanie na background też nic nie daje, bo próbowałem w pierwszej kolejności...
P-90195
pekfos
» 2013-08-13 19:41:12
A rysowanie P1 nie zasłania tych animacji?
P-90201
« 1 » 2 3
  Strona 1 z 3 Następna strona