Witam. Wszystko działało bardzo szybko. Dodałem podwójne buforowanie i wypełnienie bufora jakimś kolorem i zaczęło wolno działać. Dodałem jeszcze kilka rzeczy i u mnie jest naprawdę wolno. Link do gry: http://chomikuj.pl/darkslayerpl
#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(128,128,128));
BITMAP * bufor = NULL;
BITMAP * plansza = NULL;
BITMAP * niebo = NULL;
BITMAP * ludek = NULL;
BITMAP * nicosc = NULL;
BITMAP * ziemia = NULL;
BITMAP * drewno = NULL;
BITMAP * kamien = NULL;
BITMAP * gabka = NULL;
BITMAP * trawa = NULL;
BITMAP * snieg = NULL;
BITMAP * szklo = NULL;
BITMAP * grzyb = NULL;
BITMAP * gwiazdka = NULL;
BITMAP * blok = NULL;
bufor = create_bitmap(4000,600);
plansza = load_bmp("plansza.bmp",default_palette);
niebo = load_bmp("niebo.bmp",default_palette);
ludek = load_bmp("ludek.bmp",default_palette);
nicosc = load_bmp("nicosc.bmp",default_palette);
ziemia = load_bmp("ziemia.bmp",default_palette);
drewno = load_bmp("drewno.bmp",default_palette);
kamien = load_bmp("kamien.bmp",default_palette);
gabka = load_bmp("gabka.bmp",default_palette);
trawa = load_bmp("trawa.bmp",default_palette);
snieg = load_bmp("snieg.bmp",default_palette);
szklo = load_bmp("szklo.bmp",default_palette);
grzyb = load_bmp("grzyb.bmp",default_palette);
gwiazdka = load_bmp("gwiazdka.bmp",default_palette);
blok = drewno;
int ludek_x=0,ludek_y=0;
while (!key[KEY_ESC])
{
if (key[KEY_LEFT] ) ludek_x--;
if (key[KEY_RIGHT] ) ludek_x++;
if (key[KEY_UP] ) ludek_y--;
if (getpixel(plansza, ludek_x, ludek_y+50) == makecol(255,0,255)) ludek_y++;
blit(niebo,bufor,0,0,0,0,niebo->w,niebo->h);
masked_blit(plansza,bufor,0,0,0,0,plansza->w,plansza->h);
masked_blit( ludek,bufor,0,0,ludek_x,ludek_y,ludek->w,ludek->h );
if (key[KEY_1] ) blok = nicosc;
if (key[KEY_2]) blok = ziemia;
if (key[KEY_3] ) blok = drewno;
if (key[KEY_4]) blok = kamien;
if (key[KEY_5] ) blok = gabka;
if (key[KEY_6]) blok = trawa;
if (key[KEY_7] ) blok = snieg;
if (key[KEY_8]) blok = szklo;
if (key[KEY_9] ) blok = grzyb;
if (key[KEY_0]) blok = gwiazdka;
if (key[KEY_E]) blit(blok,plansza,0,0,ludek_x+50,ludek_y,blok->w,blok->h);
if (key[KEY_Q]) blit(blok,plansza,0,0,ludek_x-50,ludek_y,blok->w,blok->h);
if (key[KEY_R]) blit(blok,plansza,0,0,ludek_x,ludek_y-50,blok->w,blok->h);
if (key[KEY_F]) blit(blok,plansza,0,0,ludek_x,ludek_y+50,blok->w,blok->h);
if(ludek_x>-1&ludek_x<801) blit(bufor,screen,0,0,0,0,bufor->w,bufor->h);
if(ludek_x>800&ludek_x<1601) blit(bufor,screen,801,0,0,0,bufor->w,bufor->h);
if(ludek_x>1600&ludek_x<2401) blit(bufor,screen,1601,0,0,0,bufor->w,bufor->h);
if(ludek_x>2400&ludek_x<3201) blit(bufor,screen,2401,0,0,0,bufor->w,bufor->h);
if(ludek_x>3200&ludek_x<4001) blit(bufor,screen,3201,0,0,0,bufor->w,bufor->h);
}
allegro_exit();
return 0;
}
END_OF_MAIN();