Skocz do zawartości

Zginanie się liny.


kt1117

Rekomendowane odpowiedzi

Mam pewien problem, muszę napisać kod powodujący zaginanie liny, zacząłem w taki sposób:

GML
if lina=2 and collision_line(x,y,hak.x,hak.y,teren,1,0)

{

a=1

checkpointy[0,0]=x

checkpointy[0,1]=y

do

{

xx=-1

 

dir=point_direction(checkpointy[a-1,0],checkpointy[a-1,1],hak.x,hak.y)

 

do

{

xx+=1

}

until collision_point(checkpointy[a-1,0]+lengthdir_x(xx,dir),checkpointy[a-1,1]+lengthdir_y(xx,dir),teren,1,0)

 

checkpointy[a,0]=lengthdir_x(xx,dir)

checkpointy[a,1]=lengthdir_y(xx,dir)

a+=1

}

until !collision_line(checkpointy[a,0],checkpointy[a,1],hak.x,hak.y,teren,1,0)

 

}

I niestety podaje mi liczbę z kosmosu, mógł by mi ktoś powiedzieć co jest źle? Nie potrzebuje gotowego kodu, wystarczy mi ,że ktoś nakieruje mnie na dobry tok myślenia.

E:Chcę by funkcja zwróciła mi miejsca, w których występuje kolizja, a gra zawiesza się, podając na dodatek złe liczby.

E2:Pomyliłem składnie until'a, jak teraz poprawiłem, to zawiesza się po upływie dłuższego czasu z powodu zbyt dużej liczby pól tablicy. Doszedłem do tego, że nadrzędna pętla funkcji wykonuje się zbyt długo, ale jeszcze nie wiem jak to naprawić.

Odnośnik do komentarza
Udostępnij na innych stronach

zrob tak, ze jesli masz juz kod na normalna line, to gdy ta natrafi na przeszkode niech lina z hakiem bedzie rysowana jako zwykla linia, zas lina od przeszkody do bohatera bedzie oddzielna lina z punktem zaczepienia na przeszkodzie, jasno wytlumaczylem?

Odnośnik do komentarza
Udostępnij na innych stronach

GML
create

xzahaczenia=0

yzahaczenia=0

 

step

//sprawdzamy czy gdzie kolwiek wystapila kolizja, zeby program sie nie zdyszal

if(collision_line(xhak,yhak,x,y,teren,1,1)){

xzahaczenia=xhak;

yzahaczenia=yhak;

while(!collision_point(lengthdir_x(xzahaczenia,dir),lengthdir_y(yzahaczenia,dir),teren,1,0)){

xzahaczenia++;

yzahaczenia++;//tutaj nie zabardzo wiem czy dobrze, nie pamietam juz jak dokladnie uzywalo sie lenghdirow

}

xzahaczenia jest twoim nowym punktem xhaka i to samo z y

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...