Efekt zwijania obrazu- użyty w grze "Rubikon"
#include < allegro.h >
//...
// inicjacja allegro4, bitbap, zegara itp.
//...
blit(screen,obr2,0,0,0,0,800,600); // bitmap do zwijania
blit(obr2,bufor,0,0,0,0,800,600); // bitmap zwijany do bufora
int k=0;
for(int i=0; i<600; ++i)
{
speed=0;
k=0; // szerokosc paska zwijania
while(k<30)
{
if(mouse_b==1) speed++; // dodatkowe przyspieszenie zwijania
speed++;
//-- petla zwalniajaca ---
if(speed>1)
{
blit(obr2,bufor,0,i-k,0,i+k,800,1); // szykowanie paska zwijania
++k;
// odrozniajacy sie pasek zwijania
for(int j=0; j<400; ++j) vline(obr2,j*2,0,k, makecol(99,77,77));
}
}
// odrozniajacy sie pasek zwijania
for(int j=0; j<400; ++j) vline(obr2,j*2,i,i+1, makecol(88,66,66));
// wstawia linię drugiego obrazu od góry
blit(obr1,bufor,0,i,0,i,800,1);
// jasna linia na dole paska zwijania
hline(bufor,0,i+1,800,makecol(155,150,150));
// ciemna linia na dole paska zwijania
if(i>30) hline(bufor,0,i+30+1,800,makecol(50,30,30));
blit(bufor,screen,0,0,0,0,800,600); // wszystko na ekran
rest(1); // mała pauza
}
|