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

[Allegro, C++] Nie może utworzyć tła bmp

Ostatnio zmodyfikowano 2012-09-24 16:13
Autor Wiadomość
enzoMatrix
Temat założony przez niniejszego użytkownika
[Allegro, C++] Nie może utworzyć tła bmp
» 2012-09-24 15:50:34
Witam. Mam problem już od kilku dni. Szukałem już po forach jednak nie znalazłem rozwiązania. Chodzi o bitmapę jako tło gry. Bitmapa to tekstura z gimpa wrzucona na obrazek 800x600 w 16 bitach. Gdy kompiluje wyświetla mi się ta informacja "nie moge zaladowac mapy". Gdzieś na YouTube znalazłem filmik jak ktoś pokazywał że przy skazywaniu na bitmapę pisze się NULL zamiast default_palette ale to też nie działa. Proszę o pomoc


#include <allegro.h>

BITMAP * bufor = NULL;
BITMAP * mapa = NULL;

int main()
{
allegro_init();
install_keyboard();
set_color_depth( 16 );
set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0);
clear_to_color(screen, makecol(128,128,128));

bufor = create_bitmap( 800, 600 );
if(!bufor)
{
set_gfx_mode( GFX_TEXT, 0, 0, 0, 0);
allegro_message("nie moge utworzyc bufora");
allegro_exit();
return 0;
}
mapa = load_bmp( "mapa2.bmp", NULL );
if(!mapa)
{
set_gfx_mode( GFX_TEXT, 0, 0, 0, 0);
allegro_message( "nie moge zaladowac mapy" );
allegro_exit();
return 0;
}
while( !key[KEY_ESC])
{
clear_to_color(bufor, makecol( 150, 150, 150));
masked_blit( mapa, bufor, 0, 0, 0, 0, 800, 600);
blit( bufor, screen, 0, 0, 0, 0, 800, 600);
}
destroy_bitmap( mapa );
destroy_bitmap( bufor );
allegro_exit();
return 0;
}
END_OF_MAIN();
P-65471
SeaMonster131
» 2012-09-24 16:07:17
Plik umieść tam gdzie masz projekt lub obok pliku *.exe. Jeżeli to nie pomoże bądź już tak masz, to spróbuj zapisać bitmapę w 32 kolorach.
P-65472
enzoMatrix
Temat założony przez niniejszego użytkownika
rozwiązane
» 2012-09-24 16:13:24
Miałeś rację. Zamiast w gimpie otworzyłem to w paincie i zapisałem w 24bitach. Zaczęło normalnie go wyświetlać. Nigdzie nie wyczytałem że nie obsługuje większych palet. W końcu w kursie ustawiało się też 32 bity. Dzięki za pomoc temat rozwiazany.
P-65473
« 1 »
  Strona 1 z 1