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

[Allegro] Migające Bitmapy

Ostatnio zmodyfikowano 2009-08-12 21:20
Autor Wiadomość
Piast
Temat założony przez niniejszego użytkownika
[Allegro] Migające Bitmapy
» 2009-08-12 15:57:26
Korzystam z biblioteki allegro mam taki problem:
używając tego kodu  blit(bufor,screen,0,0,0,0,800,600); komputer wyświetla text na ekranie ,ale wyświetlone bitmapy migają ,jak zrobić aby nie migały a zarazem text się wyświetlał ?
P-9342
Tmk93
» 2009-08-12 16:00:21
Daj cały albo część kodu bo tutaj tylko widzę że wyświetlasz bufor na ekranie.
P-9343
pixelmaster
» 2009-08-12 16:06:07
bitmapy wyświetlasz na buforze czy na ekranie ?
P-9344
Piast
Temat założony przez niniejszego użytkownika
» 2009-08-12 17:15:10
C/C++
#include <allegro.h>

BITMAP * kursor;

void laduj_kursor()
{
   
    kursor = load_bitmap( "kula.bmp", NULL );
    if( !kursor )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie moge zaladowac grafiki ( kula )" );
        allegro_exit();
    }
};

int mx = 0, my = 0, mb = 0;
int bbb;
void myszka()
{
    if( mx != mouse_x || my != mouse_y || mb != mouse_b )
    {
        mx = mouse_x;
        my = mouse_y;
        mb = mouse_b;
    }
};

int main()
{
   
    allegro_init();
    install_keyboard();
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 );
   
    BITMAP * kula2 = NULL;
    kula2 = load_bmp( "kula2.bmp", default_palette );
    BITMAP * bufor = NULL;
    bufor = create_bitmap( 800, 600 );
   
    laduj_kursor();
    install_mouse();
    show_mouse( screen );
    set_mouse_sprite( kursor );
    unscare_mouse();
   
    while( !key[ KEY_ESC ] )
    {
       
        clear_to_color( bufor, makecol( 100, 100, 100 ) );
        myszka();
       
        textprintf_ex( bufor, font, 20, 20, makecol( 200, 200, 200 ), - 1, "Myszka x = %d, y = %d, klawisz = %d !", mx, my, mb );
       
        textprintf_ex( bufor, font, 20, 60, makecol( 200, 100, 250 ), - 1, "liczba = %d !", bbb );
       
        blit( kula2, screen, 0, 0, 40 + bbb, 40, kula2->w, kula2->h );
       
        if( bbb < 300 )
             bbb++;
       
       
       
        set_mouse_sprite( kursor );
        blit( bufor, screen, 0, 0, 0, 0, 800, 90 );
       
        clear_keybuf();
       
    }
   
    destroy_bitmap( kula2 );
    destroy_bitmap( bufor );
    destroy_bitmap( kursor );
    allegro_exit();
    return 0;
}
END_OF_MAIN();
P-9345
Tmk93
» 2009-08-12 17:21:01
Dlaczego kule wyswietlasz na ekranie a nie na buforze ? wyswietlaj wszystko na buforze a potem bufor na ekranie i nic wtedy nie będzie migAŁO
P-9346
Piast
Temat założony przez niniejszego użytkownika
» 2009-08-12 17:22:17
a może mi ktoś napisać dokładnie ,bo dopiero zaczynam
P-9347
Tmk93
» 2009-08-12 17:23:44
np. tutaj:  blit( kula2, screen, 0,0, 40+bbb,40, kula2->w, kula2->h);

zamiast screen daj bufor:

blit( kula2, bufor, 0,0, 40+bbb,40, kula2->w, kula2->h);  
P-9349
Piast
Temat założony przez niniejszego użytkownika
» 2009-08-12 17:32:01
działa ,dzięki !
ale jak chcę zmienić ikonę myszki z show_mouse(screen); na (bufor) to przy wyjściu program mi się zawiesza
P-9350
« 1 » 2
  Strona 1 z 2 Następna strona