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

[Allegro] Problem z kompilacją kodu

Ostatnio zmodyfikowano 2010-03-21 21:10
Autor Wiadomość
maciejo
Temat założony przez niniejszego użytkownika
[Allegro] Problem z kompilacją kodu
» 2010-03-21 20:55:18
Witam wszystkich , jestem początkującym programistą i po przeczytaniu kursu easykodera chciałem napisać prostą platformówkę , ale mam drobne problemy z kompilacją
Oto kod :

C/C++
#include <allegro.h>

// Inicjowanie timera
volatile long speed = 0;
void increment_speed()
{
    speed++;
}
END_OF_FUNCTION( increment_speed );
LOCK_VARIABLE( speed );
LOCK_FUNCTION( increment_speed );

// Zmienne potrzebne do mapy
int mapa_x = 0, mapa_y = 0;
BITMAP * teren = NULL;
BITMAP * bufor = NULL;

// DEFINICJA MAPY
short int map[ 10 ][ 20 ] =
{
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
};

// Funkcja wyświetlająca mapę:
void wys_mape()
{
    int licznik_x, licznik_y;
    for( licznik_x = 0; licznik_x < 10; licznik_x++ )
    {
        for( licznik_y = 0; licznik_y < 5; licznik_y++ )
        {
            blit( teren, bufor,
            ( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] % 4 ) * 40,
            ( map[ licznik_y + mapa_y ][ licznik_x + mapa_x ] / 4 ) * 40,
            licznik_x * 40, licznik_y * 40, 40, 40 );
        }
    }
};

//Funkcja główna

int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0 );
    clear_to_color( screen, makecol( 128, 128, 128 ) );
    install_timer();
    install_int_ex( increment_speed, BPS_TO_TIMER( 40 ) );
   
    BITMAP * ludek = NULL;
   
    // Tworzenie bufora
    bufor = create_bitmap( 640, 480 );
    if( !bufor )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie mogę utworzyć bufora !" );
        allegro_exit();
        return 0;
    }
    // Ładowanie grafiki
    teren = load_bmp( "teren.bmp", default_palette );
   
    ludek = load_bmp( "ludek.bmp", default_palette );
   
    if( !ludek )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "nie mogę załadować obrazka Ludek !" );
        allegro_exit();
        return 0;
    }
   
    int ludek_x = 5, ludek_y = 5;
   
    while( !key[ KEY_ESC ] )
    {
        while( speed > 0 )
        {
            if( key[ KEY_LEFT ] ) ludek_x--;
           
            if(( key[ KEY_LEFT ] ) &&( mapa_x > 0 ) ) { mapa_x = mapa_x - 1; } else
                 if( key[ KEY_RIGHT ] ) ludek_x++;
           
            if(( key[ KEY_RIGHT ] ) &&( mapa_x < 10 ) ) { mapa_x = mapa_x + 1; } else
                 if( key[ KEY_UP ] ) ludek_y--;
           
            if(( key[ KEY_UP ] ) &&( mapa_y > 0 ) ) { mapa_y = mapa_y - 1; } else
                 if( key[ KEY_DOWN ] ) ludek_y++;
           
            if(( key[ KEY_DOWN ] ) &&( mapa_y < 5 ) ) { mapa_y = mapa_y + 1; }
        }
        speed--;
    }
    // Czyszczenie bufora
    clear_to_color( bufor, makecol( 150, 150, 150 ) );
   
    // Wyświetlanie mapy
    wys_mape();
   
    blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
}
//clear_to_color(screen, makecol(10,10,10));
//rest(1);
masked_blit( ludek, screen, 0, 0, ludek_x, ludek_y, ludek->w, ludek->h );
}
remove_int( increment_speed );
destroy_bitmap( teren );
destroy_bitmap( bufor );
destroy_bitmap( ludek );
allegro_exit();
return 0;
}
END_OF_MAIN();
Problem wyświetla w linijce :
masked_blit( ludek, screen, 0,0, ludek_x, ludek_y, ludek->w, ludek->h);

Używam Dev-C++
P-15290
filipesq
» 2010-03-21 20:57:33
Jaki błąd ci wyskakuje?

P.S.
Jak masz timer, to nie używaj rest().
P-15291
Bartaz
...
» 2010-03-21 20:58:01
Napisz jaki błąd masz...
P-15292
maciejo
Temat założony przez niniejszego użytkownika
» 2010-03-21 20:59:29
Pisałem przecież , że mam błąd w linijce :
masked_blit( ludek, screen, 0,0, ludek_x, ludek_y, ludek->w, ludek->h);
PS Kopiowałem to na szybko z kursu
P-15293
Bartaz
...
» 2010-03-21 21:00:15
Ale jaki błąd?
P-15294
malan
» 2010-03-21 21:00:28
Masz chyba o kilka klamer ( '}' ) za dużo.
P-15295
maciejo
Temat założony przez niniejszego użytkownika
» 2010-03-21 21:01:47
Czyli to co się wyświetla w oknie "kompilator"?


PS klamer ? Gdzie?
P-15296
Bartaz
...
» 2010-03-21 21:02:59
Tak...
///
"PS kopiowalem to na szybko z kursu"
to ty piszesz tą gre czy kopiujesz;>
P-15297
« 1 » 2
  Strona 1 z 2 Następna strona