allegro scrollowanie

0

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();
0

Twoje okno ma 800x600, za każdym kliknięciem strzałki w lewo przewijasz bitmapę o 1 px wiec to jest prawie nie widoczne dla Twojego oka..
http://cpp0x.pl/forum/temat/?id=795

P.S - ogarnij formatowanie kodu

1 użytkowników online, w tym zalogowanych: 0, gości: 1