aimo1 Temat założony przez niniejszego użytkownika |
» 2011-05-04 19:41:57 właśnie na tym polega problem nie wiem jak animacja ma działac przesuwając po np 1 kącie aż kont nie dojdzie do określonego kątu wtedy ma się zatrzymac
(to cpp przed kodem coś nie działa) oto muj kod jaki miałem ostatnio #include <allegro.h>//int game() volatile long speed=0; void increment_speed() { speed++; } END_OF_FUNCTION(increment_speed); LOCK_VARIABLE(speed); LOCK_FUNCTION(increment_speed); int main() { allegro_init(); install_keyboard(); set_color_depth(16); set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0); clear_to_color(screen,makecol(128,128,128)); double zw; double tw; double ch; int menu=0; int tura=0; int animacja=0; int odl=200; int kont=0; char hpa=100; char hpm=200; int enm=400; int ena=200; int lvl = 1; int klasa=1; int tim=200; int tuwx=300; int tuwy=350; int tuwk=0; int glok=0; double ramx=tuwx-5; double ramy=tuwy+20; double ramk=0; double Ramx=tuwx+80-10; double Ramy=tuwy+20; double Ramk=0; double dlox=ramx+77; double dloy=ramy+45; double dlok=0; double Dlox=Ramx-78; double Dloy=Ramy+45; double Dlok=0; int udx=tuwx+10; int udy=tuwy+90; int udk=0; int Udx=tuwx+50; int Udy=tuwx+140; int Udk=0; int golx=udx; int goly=udy+45; int golk=0; int Golx=Udx; int Goly=Udy+45; int Golk=0; int stox=golx-5; int stoy=goly+15; int stok=0; int Stox=Golx-2; int Stoy=Goly+15; int Stok=0; double bronx=dlox; double brony=dloy-220; int bronk=10; install_timer(); install_int_ex(increment_speed,BPS_TO_TIMER(tim)); BITMAP*postac[16]; BITMAP*podloga[5]; BITMAP*bufor=NULL; BITMAP*sciana[5]; BITMAP*hp=NULL; BITMAP*bufor2=NULL; postac[1]=load_bmp("postac1_1.bmp",default_palette); postac[2]=load_bmp("postac1_2.bmp",default_palette); postac[3]=load_bmp("postac1_3.bmp",default_palette); postac[4]=load_bmp("postac1_4.bmp",default_palette); postac[5]=load_bmp("postac1_5.bmp",default_palette); postac[6]=load_bmp("postac1_6.bmp",default_palette); postac[0]=load_bmp("postac11.bmp",default_palette); postac[7]=load_bmp("postac1_7.bmp",default_palette); postac[8]=load_bmp("postac1_8.bmp",default_palette); podloga[0]=load_bmp("scanaa.bmp",default_palette); bufor2=create_bitmap(800,600); while(!key[KEY_ESC]) { if(key[KEY_2])//w tym miejscu się zatrzymałem { zw=Dlox; tw=Dloy; Dlox=zw; Dloy=tw; ch=64/64; ramk+=2; Dlok+=2; Dlox-=ch*ramk; Dloy-=ch*ramk; } clear_to_color(bufor2,makecol(150,150,150)); masked_blit(podloga[0],bufor2,0,0,0,0,800,600); pivot_sprite(bufor2,postac[7],ramx,ramy,10,0,ftofix(ramk)); pivot_sprite(bufor2,postac[7],Ramx,Ramy,10,0,ftofix(Ramk)); pivot_sprite(bufor2,postac[8],dlox,dloy,10,0,ftofix(dlok)); pivot_sprite(bufor2,postac[8],Dlox,Dloy,10,0,ftofix(Dlok)); pivot_sprite(bufor2,postac[4],udx,udy,10,0,ftofix(udk)); pivot_sprite(bufor2,postac[4],Udx,Udy,10,0,ftofix(Udk)); pivot_sprite(bufor2,postac[6],stox,stoy,10,0,ftofix(stok)); pivot_sprite(bufor2,postac[6],Stox,Stoy,10,0,ftofix(Stok)); pivot_sprite( bufor2, postac[5], golx, goly, 10, 0, ftofix( golk ) ); pivot_sprite( bufor2, postac[5], Golx, Goly, 10, 0, ftofix( Golk ) ); pivot_sprite(bufor2,postac[2],tuwx,tuwy,10,0,ftofix(tuwk)); pivot_sprite(bufor2,postac[3],tuwx+21,tuwy-55,10,0,ftofix(glok)); pivot_sprite( bufor2,postac[1],bronx,brony,10,0, ftofix( bronk ) ); blit(bufor2,screen,0,0,0,0,800,600); readkey(); } allegro_exit(); return 0; } END_OF_MAIN();
|