mam prosta bit mapę i nie wiem dlaczego program nie chce jej scrollowac. Nie wiem czy aby nie musiałbym zrobić tablicy z mapą i dopiero wtedy mógłbym ja scrollować. A może tylko wystarczy dodać coś do mojego kodu żeby zaczął scrollować obecną bitmape
#include<allegro.h>
int main()
{
allegro_init();
install_keyboard();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0);
clear_to_color(screen,makecol(0,0,0));
BITMAP*ludek=NULL;
BITMAP*tlo=NULL;
BITMAP*bufor=NULL;
BITMAP*drzwi=NULL;
bufor=create_bitmap(800,600);
ludek=load_bitmap("ludek.bmp",default_palette);
tlo=load_bitmap("tlo.bmp",default_palette);
drzwi=load_bitmap("drzwi.bmp",default_palette);
int mapa_x=0,mapa_y=0;
int ludek_x=0 ,ludek_y=525;
int drzwi_x=750 , drzwi_y=525;
while (!key[KEY_ESC])
{
if (key[KEY_RIGHT]) ludek_x++ , mapa_x++;
if (key[KEY_LEFT]) ludek_x--, mapa_x--;
masked_blit(tlo,bufor,0,0,0,0,800,600);
masked_blit(ludek,bufor,0,0,ludek_x,ludek_y,ludek->w,ludek->h);
hline(bufor,0,583,800,makecol(0,0,0));
masked_blit(drzwi,bufor,0,0,drzwi_x,drzwi_y,drzwi->w,drzwi->h);
if((key[KEY_RIGHT]) && (mapa_x < 10)){ mapa_x = mapa_x + 1; } else
if((key[KEY_LEFT]) && (mapa_x > 0)){ mapa_x = mapa_x - 1; }
if (ludek_x==750 && ludek_y==525)
{
break;
}
blit (bufor,screen,0,0,0,0,800,600);
}
destroy_bitmap(ludek);
destroy_bitmap(tlo);
destroy_bitmap(bufor);
allegro_exit();
return 0;
}
END_OF_MAIN();