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ł ?
|
|
Tmk93 |
» 2009-08-12 16:00:21 Daj cały albo część kodu bo tutaj tylko widzę że wyświetlasz bufor na ekranie. |
|
pixelmaster |
» 2009-08-12 16:06:07 bitmapy wyświetlasz na buforze czy na ekranie ? |
|
Piast Temat założony przez niniejszego użytkownika |
» 2009-08-12 17:15:10 #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(); |
|
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 |
|
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 |
|
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); |
|
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 |
|
« 1 » 2 |