OriPL Opublikowano 6 Listopada 2011 Udostępnij Opublikowano 6 Listopada 2011 Witam postanowiłem od początku zacząć pisać LabEscape, bo wraz z formatem zginą mi projekt... w tamtym i w aktualnym projekcie mam taki pewien problem... Chce dostać taki efekt że jak postawie 3 skrzynki na sobie i przesune tą na samym dole to skrzynki na górze również się przesuwają... efekt uzyskałem lecz nie jest on zbyt elastyczny... otóż problem polega na tym że jeżeli w edytorze postawie skrzynki od dołu to wszystko działa jak należy... jednak jeżeli będę stawiał skrzynki od góry to już się nic nie przesuwa... skrzynki nie reagują... problem pokaże obrazek: Kod na przesuwanie w STEP: GML box_id = collision_line(x-16,y+17,x+16,y+17,obj_box_normal,0,1); if box_id != -4 { x -= box_id.xprevious - box_id.x; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 6 Listopada 2011 Administratorzy Udostępnij Opublikowano 6 Listopada 2011 A dla czego sprawdzasz skrzynki w poziomie, a nie w pionie ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 6 Listopada 2011 Udostępnij Opublikowano 6 Listopada 2011 Sprawdza w pionie. ;) Tylko ten kod tak dziwnie wyglada, ale ja też podobnego niedawno używałem. Sprawdza czy jest wolne nad całą szerokością obiektu. E:Wdg. mnie ten kod nie ma prawa nie działać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 7 Listopada 2011 Udostępnij Opublikowano 7 Listopada 2011 Spróbuj tak GML (STEP) if x!=xprevious { obj = collision_rectangle(x,y,x+16,y-16,skrzynka,1,1) if obj!=-4 { obj.x -= x - xprevious } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OriPL Opublikowano 7 Listopada 2011 Autor Udostępnij Opublikowano 7 Listopada 2011 E:Wdg. mnie ten kod nie ma prawa nie działać. A jednak... Spróbuj tak GML if x!=xprevious { obj = collision_rectangle(x,y,x+16,y-16,skrzynka,1,1) if obj!=-4 { obj.x -= x - xprevious } } Niestety w ogóle nie działa (oczywiscie zmieniłem wartości by pokrywały całą skrzynie a nawet trochę więcej (metoda prób i błędów) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 7 Listopada 2011 Udostępnij Opublikowano 7 Listopada 2011 Teraz sprawdza po ukosie :/ GML box_id = collision_line(x+16,y+17,x+16,y-17,obj_box_normal,0,1); if box_id { x -= box_id.xprevious - box_id.x; } Ten jest dobrze. E: w sumie można to zrobić jeszcze lepiej: GML box_id = collision_point(x+16,y-16,obj_box_normal,0,1) if(box_id) box_id.x = x Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OriPL Opublikowano 7 Listopada 2011 Autor Udostępnij Opublikowano 7 Listopada 2011 Teraz sprawdza po ukosie :/ GML box_id = collision_line(x+16,y+17,x+16,y-17,obj_box_normal,0,1); if box_id { x -= box_id.xprevious - box_id.x; } Ten jest dobrze. E: w sumie można to zrobić jeszcze lepiej: GML box_id = collision_point(x+16,y-16,obj_box_normal,0,1) if(box_id) box_id.x = x A po jakiego grzyba mam sprawdzać po ukosie?? Chryste... Drugi kod były poprawny gdyby nie fakt że skrzynki nie zawsze stoją idealnie na sobie... inaczej mówiąc gdy przesunę tą niżej to ta wyżej mocno skoczy... powtarzam... mój kod działa ale jest problem z kolejnością wykonywania kodu... Jeżeli kłade skrzynki od dołu do góry... to działa... gdy na odwrót to nie... inaczej mówiąc w drugim przypadku kod skrzyni na samym dole wykonuje się jako ostatni... a teoretycznie powinien jako pierwszy by cała reszta mogła zareagować... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 8 Listopada 2011 Administratorzy Udostępnij Opublikowano 8 Listopada 2011 Możesz dać kod w kolizji z ludzikiem i w pętli sprawdzać czy stoją skrzynki powyżej (while collision_line > -1) i wtedy będzie zawsze od dołu do góry. No i skrzynki przesuną się w tym samym stepie, zatem w tej samej klatce obrazu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 8 Listopada 2011 Udostępnij Opublikowano 8 Listopada 2011 Proszę: https://gmclan.org/up7191_12_skrzynki.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 9 Listopada 2011 Udostępnij Opublikowano 9 Listopada 2011 Jezu,nie można użyć starego,dobrego place_meeting i vspeed? -_- Będzie prościej i mniej poblemów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 9 Listopada 2011 Administratorzy Udostępnij Opublikowano 9 Listopada 2011 Wtedy nadal te na górze przesuną się dopiero krok po tym, jak przesunie się ten na dole :) Takie jedno klatkowe opóźnienie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sernat Opublikowano 9 Listopada 2011 Udostępnij Opublikowano 9 Listopada 2011 Jezu,nie można użyć starego,dobrego place_meeting i vspeed? -_- Będzie prościej i mniej poblemów. Mieszanie słów "dobre" i "prostsze" z pojęciem "vspeed" mija się z celem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się