Skocz do zawartości

Zablokowane Lengthdiry przy owocach na drzewku


Easeful

Rekomendowane odpowiedzi

Nie wiem czy mam zanik pamięci czy co, ale nie umiem tego zrobić chociaż myślałem że umiem:

 

Jest sobie drzewko.

Stoi sobie prosto.

Na nim rośnie jabłko.

Rośnie na jego pozycji x-33 i y-36.

Nagle zonk i mocny powiew wiatru.

Drzewko się przechyla...

A co jabłkiem?

Jabłko zostaje w tym samym miejscu.

Bo zmienia się tylko image_angle drzewka.

 

 

No i jak to zrobić lengthdirami, żeby wyliczać względem image_angle drzewka, pozycję jabłka?

Odnośnik do komentarza
Udostępnij na innych stronach

Co za brednie. Koles dobrze kombinuje, a wy go zmylacie jakimiś durnymi pomysłami.

Użyj Lengthdirów.

 

x = x+lengthdir_x(-33,image_angle);

y = y+lengthdir_y(-36,image_angle);

 

Kolejność argumentów mogłem pomylić. Ale to pobawisz się nimi i na pewno ci się uda.

 

EDIT: To co mówi Pan wyżej też pewnie będzie działać, ale jest bardziej skomplikowane :P

 

kodem sie nie da

Cierp...

Odnośnik do komentarza
Udostępnij na innych stronach

bo to jest tak:

 

o_drzewo ma 5 pól na owoce o 5 losowych rodzajach.

 

 

GML
Create:

 

image_angle=90;

 

pcnt=5;

pole[1,1]=-33;

pole[1,2]=-36;

pole[2,1]=-27;

pole[2,2]=-62;

pole[3,1]=0;

pole[3,2]=-72;

pole[4,1]=25;

pole[4,2]=-58;

pole[5,1]=33;

pole[5,2]=-31;

 

 

tcnt=5;

type[1]=o_jablko;

type[2]=o_banan;

type[3]=o_orange;

type[4]=o_winogrona;

type[5]=o_gruszka;

 

 

for(i=1; i<=pcnt; i+=1)

{

var tp;

tp=type[1+round(random(tcnt-1))];

pole[i,3]=instance_create(x,y,tp);

}

 

pole[n,1] = różnica x owocu od x drzewa

pole[n,2] = różnica y owocu od y drzewa

pole[n,3] = uchwyt obiektu owocu

 

no i teraz co dać w step?

 

GML
for(i=1; i<=pcnt; i+=1)

{

if instance_exists(pole[i,3])

{

pole[i,3].x = x+lengthdir_x(pole[i,1],image_angle);

pole[i,3].y = y+lengthdir_y(pole[i,2],image_angle);

}

}

 

To działa jakoś źle, albo tylko na pozycje x..

Odnośnik do komentarza
Udostępnij na innych stronach

to dałem tak:

 

GML
for(i=1; i<=pcnt; i+=1)

{

if instance_exists(pole[i,3])

{

pole[i,3].x = x+lengthdir_x(point_distance(x,y,x+pole[i,1],y+pole[i,2]) ,image_angle);

pole[i,3].y = y+lengthdir_y(point_distance(x,y,x+pole[i,1],y+pole[i,2]) ,image_angle);

}

}

 

Jestem już coraz bliżej, już uwzględnia pozycje y, bez x bo wszystko na środku drzewka jest, a wcześniej to był total syf :P

 

A co masz na myśli Shocker, pisząc:

lub używaj po 2 lengthdiry.

 

??

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli sprite drzewa jest korzeniami do dołu:

GML
for(i=1; i<=pcnt; i+=1)

{

if instance_exists(pole[i,3])

{

pole[i,3].x = x+lengthdir_x(pole[i,1],image_angle)+lengthdir_x(pole[i,2],image_angle-90);

pole[i,3].y = y+lengthdir_y(pole[i,1],image_angle)+lengthdir_y(pole[i,2],image_angle-90);

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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