Dzięki, w tym 2 linku znalazłem takie coś jak position_mouse(x,y )
Lecz pojawia się kolejny problem - napisałem program dzięki któremu można przesuwać kursorem za pomocą strzałek.
Wszystko niby działa, ale jeżeli próbuję przemieścić ten kursor, wtedy zaczyna strasznie migać, wygląda to trochę nieestetycznie.
Dałoby się coś temu zaradzić?
Kod:
#include <allegro.h>
int mx = 0, my = 0, mb = 0;
void mouse()
{
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( 32 );
set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 );
install_mouse();
unscare_mouse();
BITMAP * bufor = NULL;
bufor = create_bitmap( 800, 600 );
show_mouse( screen );
while( !key[ KEY_ESC ] )
{
if( key[ KEY_LEFT ] ) position_mouse(mx-5,my );;
if( key[ KEY_RIGHT ] ) position_mouse(mx+5,my );;
if( key[ KEY_UP ] ) position_mouse(mx,my-5 );;
if( key[ KEY_DOWN ] ) position_mouse(mx,my+5 );;
if( key[ KEY_UP ] && key[ KEY_RIGHT ] ) position_mouse(mx+5,my-5 );;
if( key[ KEY_UP ] && key[ KEY_LEFT ] ) position_mouse(mx-5,my-5 );;
if( key[ KEY_DOWN ] && key[ KEY_RIGHT ] ) position_mouse(mx+5,my+5 );;
if( key[ KEY_DOWN ] && key[ KEY_LEFT ] ) position_mouse(mx-5,my+5 );;
clear_to_color( bufor, makecol( 100, 100, 100 ) );
mouse();
blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
clear_keybuf();
}
destroy_bitmap( bufor );
allegro_exit();
return 0;
}
END_OF_MAIN();