Pablo-GM Opublikowano 18 Listopada 2011 Udostępnij Opublikowano 18 Listopada 2011 Witam, właśnie zacząłem korzystać z klocków i już się pojawił problem , animacja wstawania mojego bohatera nie chce się wykonać . O to kod bohatera : GML Create Event: execute code: v=5; //prędkość gracza max_y=5; //maksymalna wysokość schodka na jakś gracz może wejść prawo=1 lewo=-1 dir=prawo siedze=1; wstaje=0 Step Event: execute code: if(place_free(x,y+1)) //jeśli gracz nic nie ma pod nogami... vspeed+=1; //...zaczyna opadać if siedze=0 && wstaje=0 { if(keyboard_check(ord('A')) || keyboard_check(ord('D'))) { sprite_index = sPlayerGo image_speed = 0.7; } else { sprite_index = sPlayer image_speed = 0.2; } } if siedze=1 && wstaje=0 && keyboard_check_pressed(ord('Q')) { wstaje=1; siedze=0; } if wstaje is equal to 1 set the sprite to sPlayerWstaje with subimage 0 and speed 1 if image_index is equal to 6 set the sprite to sPlayer with subimage 0 and speed 1 execute code: siedze=0; wstaje=0; Keyboard Event for A-key Key: execute code: if siedze=0 && wstaje=0 { yy=0; //zmienna pomocnicza - sprawdza jak wysoki jest schodem przed graczem ok=0; //zmienna pomocnicza - kończy działanie pętli w odpowiedniej chwili while(yy<=max_y&&ok=0) { if(place_free(x-v,y-yy)) //jeśli nic nie ma przed graczem... { x-=v; //...gracz może iść dir=lewo image_xscale=dir if(!place_free(x,y+1)&&vspeed=0) //tylko jeżeli gracz stoi (nie skacze)... y-=yy; //może wejść na schodek ok=1; //kończy działanie pętli } yy+=1; } if(!place_free(x,y+max_y)&&vspeed=0) //dzięki tym instrukcjom gracz gładziutko schodzi z górki zamiast tak "skokowo" move_contact_solid(270,max_y); } Keyboard Event for D-key Key: execute code: if siedze=0 && wstaje=0 { //wyjaśnienie poszczególnych instrukcji w evencie <LEFT> yy=0; ok=0; while(yy<=max_y&&ok=0) { if(place_free(x+v,y-yy)) { x+=v; dir=prawo image_xscale=dir if(!place_free(x,y+1)&&vspeed=0) y-=yy; ok=1; } yy+=1; } if(!place_free(x,y+max_y)&&vspeed=0) move_contact_solid(270,max_y); } Key Press Event for W-key Key: execute code: if siedze=0 && wstaje=0 { if(!place_free(x,y+1)) //Jeśli gracz na czymś stoi... vspeed=-10; //...może podskoczyć;) } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 18 Listopada 2011 Administratorzy Udostępnij Opublikowano 18 Listopada 2011 set the sprite to sPlayerWstaje with subimage 0 and speed 1 - co to za klocek? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pablo-GM Opublikowano 18 Listopada 2011 Autor Udostępnij Opublikowano 18 Listopada 2011 Change_Sprite Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pablo-GM Opublikowano 19 Listopada 2011 Autor Udostępnij Opublikowano 19 Listopada 2011 Odświeżam . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 19 Listopada 2011 Udostępnij Opublikowano 19 Listopada 2011 GML if wstaje is equal to 1 set the sprite to sPlayerWstaje with subimage 0 and speed 1 if image_index is equal to 6 set the sprite to sPlayer with subimage 0 and speed 1 execute code: siedze=0; wstaje=0; zamień is equal na is larger than 6 i sprawdź czy sprit się zmieni, jeżeli tak to w tej równości trzeba będzie zaokrąglić image_index Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pablo-GM Opublikowano 19 Listopada 2011 Autor Udostępnij Opublikowano 19 Listopada 2011 Jednak trzeba było cały kod wymieniać , Sernatowi dziękuję za pomoc . Zamykam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi