Kamil9132 Temat założony przez niniejszego użytkownika |
[Allegro] Wyświetlanie myszki » 2011-12-28 16:13:33 Witam Mam taki kod: #include <allegro.h>
int mx = 0, my = 0, mb = 0; 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, 800, 600, 0, 0 ); install_mouse(); show_mouse( screen ); unscare_mouse(); BITMAP * bufor = NULL; bufor = create_bitmap( 800, 600 ); 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 ); blit( bufor, screen, 0, 0, 0, 0, 800, 600 ); clear_keybuf(); } destroy_bitmap( bufor ); allegro_exit(); return 0; } END_OF_MAIN(); Nie wyświetla on myszki, a powinien, dlaczego tak się dzieje? Kod jest skopiowany z tego kursu: MyszkaZ małą zmianą w tej linijce: set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 );
Na: set_gfx_mode( GFX_AUTODETECT, 800, 600, 0, 0 );
|
|
Gabes |
» 2011-12-29 15:22:13 Daj najpierw na bufor a na koniec aby nie było błędu przy zamykaniu programu z powrotem na screen .
show_mouse( bufor ); blit( bufor, screen, 0, 0, 0, 0, 800, 600 ); show_mouse( screen );
Można dodawać własne kursory z bitmapy jak i zmieniać na systemowe. |
|
pekfos |
» 2011-12-29 15:24:05 Najlepiej wyświetlać ręcznie. masked_blitem np. |
|
Kamil9132 Temat założony przez niniejszego użytkownika |
» 2011-12-29 16:14:51 Dałem to w pętli i już wszystko działa show_mouse( pamiec ); unscare_mouse(); |
|
« 1 » |