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

[Allegro] Formaty obsługiwanych plików.

Ostatnio zmodyfikowano 2013-08-10 19:18
Autor Wiadomość
killjoy
» 2013-08-09 21:51:24
Brak podwójnego buforowania...
P-89861
Gabes
» 2013-08-10 00:28:38
Jeśli już musisz uczyć się nie rozwijanej wersji biblioteki to pobierz i zainstaluj ostatnią czyli Allegro 4.4.2
malutki przykładzikbmp,png,jpg
P-89867
Bajt
Temat założony przez niniejszego użytkownika
» 2013-08-10 11:56:20
Okej,
Wrzuciłem podwójne buforowanie...
Jednak, coś jest nie tak - wyglądałoby na to, że kompilator CB nie kompiluje mojego programu wogóle...Dlaczego?
C/C++
#include <allegro.h>

int main( int argc, char * argvc[] )
{
    allegro_init();
    install_keyboard();
    install_mouse();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 );
    set_palette( default_palette );
    clear_to_color( screen, 48 );
   
    BITMAP * background = NULL;
    BITMAP * P1 = NULL;
    BITMAP * P2 = NULL;
    background = load_bmp( "background.bmp", default_palette );
    if( !background )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "ERROR: Program can not load 'background.bmp' file." );
        allegro_exit();
        return 0;
    }
    blit( background, screen, 0, 0, 0, 0, background->w, background->h );
    P1 = load_bmp( "P1.bmp", default_palette );
    if( !P1 )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "ERROR: Program can not load 'P1.bmp' file." );
        allegro_exit();
        return 0;
    }
    //control for P1 "W,A,S,D"
    int P1_x = 130, P1_y = 220;
    while( !key[ KEY_ESC ] )
    {
        if( key[ KEY_A ] ) P1_x--;
       
        if( key[ KEY_D ] ) P1_x++;
       
        if( key[ KEY_W ] ) P1_y--;
       
        if( key[ KEY_S ] ) P1_y++;
       
        clear_to_color( background, makecol( 150, 150, 150 ) );
        masked_blit( P1, background, 0, 0, P1_x, P1_y, P1->w, P1->h );
        blit( background, screen, 0, 0, 0, 0, 800, 600 );
    }
   
    readkey();
    destroy_bitmap( background );
    destroy_bitmap( P1 );
    destroy_bitmap( P2 );
   
    remove_keyboard();
    remove_mouse();
    allegro_exit();
    return 0;
}
END_OF_MAIN();
Mam taki kod. Próbowałem go skompilować -0 ostrzeżeń, 0 błędów.
Uruchamiam - dalej to samo. Moja postać podczas ruchu w jakąkolwiek stronę, pozostawia po sobie czarne smugi i rozmazuje się.
Zmieniam trochę kod i kompiluję ponownie - znowu żadnych zmian. Było to trochę podejrzane.
Zmieniłem linijkę w moim kodzie, chcąc się dowiedzieć, czy aby program jest kompilowany na bieżąco. Mianowicie:
while( !key[ KEY_ESC ] )
zmieniłem na:
while( !key[ KEY_SPACE ] )
I ku mojemu przerażeniu po skompilowaniu programu i po wciśnięciu spacji, program nie zamknął się, lecz po wciśnięciu escape'a owszem.
O co chodzi? Czy mam błąd w swoim kodzie? Czy dobrze używam buforowania?. Kiedy wywaliłem linjkę odpowiadającą za wyświetlanie bufora(background), to i tak, program włączał się razem z nim.
P-89881
SeaMonster131
» 2013-08-10 12:01:51
Może Rebuild?
P-89882
Bajt
Temat założony przez niniejszego użytkownika
» 2013-08-10 12:11:47
Hmm...Zrobiłem Rebuil, jednak rebuild trwa 2s, a później gdy chcę uruchomić mój program, kompilator cały czas wyświetla komunikat o treści:
"It seems this project has not built yet.
Do you want build it now?"
Wtedy daję przycisk 'tak', następuje kompilacja i znowu - klikam F9 i znowu ten komunikat.

[edit]
Uruchomiłem inny projekt i zmieniłem trochę kod: dalej to samo, CB uruchamia go w takim stanie w jakim był przed kompilacją. Chyba wymagany będzie reinstall CB.
Tylko z jakiej to może być przyczyny?
P-89883
RazzorFlame
» 2013-08-10 12:27:41
Kiedyś miałem tak samo i ku mojemu zdziwieniu po wyłączeniu i włączeniu Code::Blocks zadziałało. Jeśli u ciebie to nie zadziała, to spróbuj nowy projekt utworzyć i skopiować kod bo za dużo go nie masz więc to nie będzie kłopot.

Edit: Sprawdź czy nadal jest ten sam build target, może zbudowałeś dla Release a uruchamiasz nadal Debug (bądź na odwrót)
P-89884
Bajt
Temat założony przez niniejszego użytkownika
» 2013-08-10 12:33:41
Wyłączenie i ponowne włączenie CB nic nie dało. Zmieniłem target z Debug na Release i odwrotnie, ale dalej wywala ten sam komunikat.
P-89886
RazzorFlame
» 2013-08-10 12:40:37
Najlepiej będzie jak dasz screena pełnego ekranu Code::Blocks, może wtedy uda się coś zauważyć.
P-89887
1 2 3 4 « 5 » 6 7
Poprzednia strona Strona 5 z 7 Następna strona