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ć.