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

[Allegro] wczytywanie pliku .bmp

Ostatnio zmodyfikowano 2010-05-19 18:47
Autor Wiadomość
SeaMonster131
Temat założony przez niniejszego użytkownika
[Allegro] wczytywanie pliku .bmp
» 2010-05-18 19:14:53
Witam :) Dzisiaj zacząłem nauke Allegro :D
I już napotkałem pierwszy problem w lekcji o wczytywaniu pliku .bmp...
Napisałem to wszystko żeby ten plik się wyświetlił tak jak w tutorialu, ale zamiast niego jest tylko zielony prostokąt... Tutaj kodzik:
C/C++
#include <allegro.h>
#include <winalleg.h>
#include <windows.h>

void init();
void deinit();

void init() {
    int depth, res;
    allegro_init();
    depth = desktop_color_depth();
    if( depth == 0 ) depth = 32;
   
    set_color_depth( depth );
    int a;
    int szerokosc = 640;
    int wysokosc = 480;
    a = MessageBox( HWND_DESKTOP, "Czy chcesz uruchomić na pełnym ekranie?", "???", MB_YESNO );
    if( a == IDYES ) {
        szerokosc = 800;
        wysokosc = 600;
    }
    res = set_gfx_mode( GFX_AUTODETECT_WINDOWED, szerokosc, wysokosc, 0, 0 );
    if( res != 0 ) {
        allegro_message( "Nie mozna uruchomic gry, poniewaz rozdzielczosc nie jest obslugiwana!" );
        exit( - 1 );
    }
   
    install_timer();
    install_keyboard();
    install_mouse();
    /* add other initializations here */
}

void deinit() {
    clear_keybuf();
    /* add other deinitializations here */
}

int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) {
    init();
    clear_to_color( screen, makecol( 0, 0, 0 ) );
   
    BITMAP * ludek = NULL;
   
    ludek = load_bmp( "dom.bmp", default_palette );
   
   
    if( !ludek )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie mozna zaladowac obrazka!" );
        allegro_exit();
        return 0;
    }
   
    clear_to_color( ludek, makecol( 0, 255, 0 ) );
    blit( ludek, screen, 0, 0, 100, 100, ludek->w, ludek->h );
   
   
   
    while( !key[ KEY_ESC ] ) {
        textout_ex( screen, font, "Gierka", 50, 30, makecol( 255, 0, 255 ), - 1 );
        textout_ex( screen, font, "By SeaMonster131", 50, 40, makecol( 255, 0, 255 ), - 1 );
        line( screen, 400, 200, 600, 400, makecol( 255, 128, 64 ) );
        line( screen, 400, 200, 100, 400, makecol( 255, 128, 64 ) );
        line( screen, 100, 400, 600, 400, makecol( 255, 128, 64 ) );
    }
    destroy_bitmap( ludek );
    deinit();
    return( 0 );
}
Jeśli coś robię źle to proszę mnie poprawić... :D

PS. Jeśli mam
allegro_message();
 i w treści wpiszę polskie znaki (np. ą, ę, ł, ć) to wyświetlają się jakieś krzaczki z kosmosu :) Wie ktoś jak to rozwiązać? Bo ja jestem troche "zielony" :)
P-16945
filipesq
» 2010-05-18 20:59:11
Z jakiego ty się kursu uczysz? Ledwo zacząłeś Allegro i już łączysz je z WinAPi?!

Przeczytaj kurs Allegro na ddt.pl albo easykoder.vot.pl.
P-16950
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2010-05-18 21:04:09
No właśnie z ddt.pl sie ucze. A to WinApi z Allegro nie można łączyć? :) Wydaje mi sie że można no ale ja za dużo doświadczenia to nie mam...
P-16951
malan
» 2010-05-18 23:12:00
clear_to_color(ludek, makecol(0,255,0));
:)

A to WinApi z Allegro nie można łączyć?
Oczywiście, że można, ale koledze chodziło o to abyś najpierw nabrał trochę doświadczenia z Allegro, a potem ewentualnie łączył z czymś tam :).
P-16959
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2010-05-19 17:39:14
To może wie ktoś jak wyświetlić ten plik .bmp? :)
Bo to co napisał @malan to nie wiem o co chodzi "
clear_to_color( ludek, makecol( 0, 255, 0 ) );
" :D
P-17007
malan
» 2010-05-19 18:35:00
Prawdopodobnie (jeżeli się nie mylę) to to jest przyczyna Twojego problemu :). Zakomentuj to i skompiluj :).
P-17014
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2010-05-19 18:47:15
heh, działa! :) Jak to ty wiedziałeś to nie wiem... :D Dzięki za pomoc ;)
P-17016
« 1 »
  Strona 1 z 1