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

[C++, Allegro] Po odpaleniu *exe wyświetla się błąd

Ostatnio zmodyfikowano 2014-02-16 13:57
Autor Wiadomość
Fofokus
Temat założony przez niniejszego użytkownika
» 2014-02-16 11:39:07
C/C++
#include <allegro.h>
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 ) );
    BITMAP * bufor = NULL;
    BITMAP * ludek = NULL;
    int speed = 10;
    bufor = create_bitmap( 640, 480 );
    ludek = load_bmp( "Ludek.bmp", default_palette );
    int ludek_x = 100, ludek_y = 100;
    while( !key[ KEY_ESC ] )
    {
        if( key[ KEY_LEFT ] ) ludek_x--;
       
        if( key[ KEY_RIGHT ] ) ludek_x++;
       
        if( key[ KEY_UP ] ) ludek_y--;
       
        if( key[ KEY_DOWN ] ) ludek_y++;
       
        if( key[ KEY_A ] ) ludek_x = ludek_x + 100;
       
        if( key[ KEY_B ] ) { ludek_x = 0; ludek_y = 400; }
        if( key[ KEY_Z ] )
        {
            ludek = load_bmp( "Ludek.bmp", default_palette );
            speed = 10;
        }
        if( key[ KEY_X ] )
        {
            ludek = load_bmp( "Buzka.bmp", default_palette );
            speed = 1;
        }
        clear_to_color( bufor, makecol( 150, 150, 150 ) );
        rest( speed );
        masked_blit( ludek, bufor, 0, 0, ludek_x, ludek_y, ludek->w, ludek->h );
        blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
    }
    destroy_bitmap( ludek );
    destroy_bitmap( bufor );
    allegro_exit();
    return 0;
}
END_OF_MAIN();
P-104710
SeaMonster131
» 2014-02-16 13:14:16
Ludek.bmp, Buzka.bmp znajdują się obok pliku *.exe (w tym samym folderze)? Tak jak mówił @pekfos, dodaj obsługę błędów.
Po drugie nie wczytuj obrazków w pętli, bo spowalnia to działanie programu i zwiększa wykorzystanie pamięci.
P-104715
Fofokus
Temat założony przez niniejszego użytkownika
» 2014-02-16 13:57:47
Ajajajaj. Pliki bmp znajdowały się w folderze, w którym znajdował się folder, w którym dopiero był *.exe. Myślałem, że to wystarczy. Mój błąd. Dzięki wielkie za pomoc, już działa.
P-104719
1 « 2 »
Poprzednia strona Strona 2 z 2