Już zrobiłęm. Ale teraz mam problem z własnym kursorem. Zrobięłm tak jak w podanym kursie a kursor mi mryga jak prowadzam go po ekranie:/ zastosowałem po dwójne bufforowanie. Dodam ze jak zrobię troszkę mnejszy kursor to jest dobrze. ten co zrobiłem to ma z jakieś 5px szerokości i 10px wysokości -coś takiego.
#include<allegro.h>
int x=0,y=0,k=0;
void myszka()
{
if((x!=mouse_x)||(y!=mouse_y)||(k!=mouse_b))
{
x=mouse_x;
y=mouse_y;
k=mouse_b;
}
}
bool prawda=false;
int a=0,b=0;
int main()
{
allegro_init();
BITMAP *buf=NULL;
BITMAP *kursor=NULL;
install_keyboard();
install_mouse();
set_color_depth(16);
set_gfx_mode(GFX_AUTODETECT_WINDOWED,500,250,0,0);
show_mouse(screen);
buf=create_bitmap(500,250);
if(!buf)
{
set_gfx_mode(GFX_TEXT,0,0,0,0);
allegro_message("VLOD");
allegro_exit();
return 0;
}
kursor=load_bmp("d:\kursor.bmp",default_palette);
if(!kursor)
{
set_gfx_mode(GFX_TEXT,0,0,0,0);
allegro_message("zke");
allegro_exit();
return 0;
}
set_mouse_sprite(kursor);
unscare_mouse();
while(!key[KEY_SPACE])
{
myszka();
clear_to_color(buf,makecol(12,12,123));
textout_ex(buf,font,"Polozenie",200,35,makecol(255,1,155),-1);
textprintf_ex(buf,font,3,2,makecol(255,255,255),-1,"x=%d, y=%d, klawisz=%d",x,y,k);
rectfill(buf, 50, 50, 60, 60, makecol(128,30,30));
if(k==1)
{ if((x>=50)&&(x<=60)&&(y>=50)&&(y<=60))
{
textout_ex(buf,font,"klik",100,100,makecol(255,255,255),-1);
rectfill(buf, 50, 50, 60, 60, makecol(255,1,0));
}
clear_keybuf();
}
prawda=false;
masked_blit(buf,screen,0,0,0,0,buf->w,buf->h);
}
allegro_exit();
return 0;
}
END_OF_MAIN();