Skocz do zawartości

Zmiana położenia obiektu, która wpływa na...


Rekomendowane odpowiedzi

Mam takie coś:

beztytuumyh.png

gdzie A,B i C to punkty współrzędnych danych obiektów. Kreski to są direction'y, a na strzałkach jest kierunek danych directionów. Direction obiektu A jest na lengthdir'ach podobnie jak obiekt B, natomiast direction obiektu C wygląda:

GML
direction=point_direction(x,y,obja.x,obja.y);

Ja potrzebuję, żeby funkcje obliczały samoistnie direction obiektu A i B, ponieważ sam zamierzam ruszać tylko współrzędnymi obiektu C. Dzięki czemu ułatwi mi to bardzo robienie animacji na szkielecie, zamiast po kolei zmieniać wartości direction'ów obiektów A i B. Odległość między obiektem AB i BC są stałe oraz takie same.

Jeśli ktoś skumał to prosiłbym o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Kurde, albo nie kumasz, albo mówisz po części dobrze(chociaż myślałem tak jak ty, by coś dodać ;p). Po pierwsze "odcinek" (jeśli brać obiekty jako współrzędne) |AB| i |BC| to są kości stickman'a dokłądniej noga. Chcę za pomocą zmienienia tylko dwóch współrzędnych x i y obiektu C, zmienia się wygląd, czyli położenie kości. Direction obiektu C jest pomocniczy. ;p

Odnośnik do komentarza
Udostępnij na innych stronach

GML
direction = point_direction( x, y, mouse_x, mouse_y )

 

ab_x = x + lengthdir_x( 50, direction - 45 );

ab_y = y + lengthdir_y( 50, direction - 45 );

 

bc_x = x + lengthdir_x( 50, direction + 45 );

bc_y = y + lengthdir_y( 50, direction + 45 );

 

draw_line( x, y, ab_x, ab_y )

draw_line( x, y, bc_x, bc_y )

//Wstaw całość w Draw jakiegoś ob j;)</span>

 

Myślę, że jednak dobrze Cię zrozumiałem.

Odnośnik do komentarza
Udostępnij na innych stronach

Punkt A jest zaczepiony na dupsku człowieka i ma się nie poruszać? Punkt C ma być położeniem stopy i to nim chcesz poruszać, a położenie punktu B ma się automatycznie dopasowywać tak by długość nogi była niezmienna?

 

I co wtedy chcesz robić jeśli punkty A i C będą na tyle daleko, że punkt B nie będzie istniał?

 

Opisz dokładnie jak to ma działać w jakich przypadkach.

Odnośnik do komentarza
Udostępnij na innych stronach

Jest dokładnie tak jak mówisz. Punkt A jest zadkiem stickman'a i u mnie jest punktem głównym, jeśli zmienisz jego położenie to zmienisz położenie całego ludzika. Punkt C jest stopą i gdy ją poruszę to zmienia się cały układ nogi. Powiem nawet, że mi się udało osiągnąć, ale punkt B zaczął przeskakiwać ze swojego miejsca na miejsce odbicia względem odcinka |AC|. Wiem co się dzieje ale nie mam pojęcia jak na to zaradzić. U mnie jest, dy punkt C będzie za daleko to punkt B wytycza współrzędne za pomocą lengthdir'ów.

Odnośnik do komentarza
Udostępnij na innych stronach

Sorry za double posta, ale nikt tu nie pisze a ta sprawa jest dla mnie bardzo ważna. ;/

Może to uprości sprawę:

 

Plik

 

Już sprawę prawie rozwiązałem, ale mam coś źle z obliczaniem direction'a obiektu A. Mój kod na obliczanie:

GML
direction=C.direction+dist+62;

 

Gdzie 'dist' oznacza odległość między punktem A i C. Jak już wspomniałem mam coś źle ponieważ odległość

A i B jest dobra, ale odległość B i C zmienia się, a powinna być równa z odległością A i B. Bardzo proszę o pomoc.

 

ps. W kodzie ruszam jedynie współrzędną C.y

 

pps. Ściągnijcie plik, bo tam wszystko jest pokazane w formie projektu.

 

@edit

@Marek.S

Mówiłem dobrze, że mnie nie rozumiesz, ponieważ wkleiłem twój kod i rezultat był nie taki jak potrzebuję.

Odnośnik do komentarza
Udostępnij na innych stronach

W pliku który dałem do ściągnięcia jest wszystko czego potrzeba, czyli, animacja ruchu nogi. W kodzie (tego pliku co wrzuciłem) dałem jedynie, że C.y zmienia położenie dzięki czemu jest pokazana animacja nogi. Ale w rogu ekranu powinny być zmienne które wskazują na długość "piszczela" i "uda". Długość "uda" zasadniczo się nie zmienia(max o 3-4 piksele). Natomiast długość "piszczela" ma za duży rozrzut (nawet do 20 pikseli), spowodowany złym obliczeniem direction'u punktu A. Prośba ma polega na rozszyfrowaniu równania, bądź wzoru na obliczenie direction'u punktu A, żeby długość "piszczela" była jak najbardziej zbliżona do długości "uda". Mój zbliżony wzór podałem w poprzednich postach, ale efekt jest niezadowalający (patrz przykład). Bardzo proszę o pomoc.

 

@edit

@assassin

To ty jak robisz krok w realu to ci "piszczele" się wydłużają? O.o To chyba normalne, że kości mają stałą odległość. Może ściągniesz plik i zobaczysz o co mi chodzi jeśli tego nie zrobiłeś. Oczywiście nie zmuszam.

 

@edit2

Widzę, że nikt nie chciał mi pomóc. Sprawę już rozwiązałem i działa poprawinie w 99%. Temat można zamknąć.

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