pablo1517 Opublikowano 22 Października 2007 Udostępnij Opublikowano 22 Października 2007 Zacznę od obrazka, który ma za zadanie przybliżyć zagadnienie. I teraz tak. Opiszę prosty przykład zrobienia platform, na które da się wskoczyć od dołu, przelatując przez nie, a potem na nich stanąć. By coś takiego wykonać, wystarczy porównać pozycje bohatera z pozycją Y górnej krawędzi naszej kwadratowej platformy. A co, jeśli nasza platforma jest trójkątem, i jej górna krawędź jest krzywa? Trzeba by wtedy uwzględnić pozycję X naszego bohatera... ale właśnie tu jest pies pogrzebany... jak to zrobić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 22 Października 2007 Udostępnij Opublikowano 22 Października 2007 Procenty miałeś kiedykolwiek? :P Do której? BC? Ok. //Szerokość w = max( Bx, Cx ) - min( Bx, Cx ); //Wysokość h = max( By, Cy ) - min( By, Cy ); //Jakiś obiekt O o danym X który należy do < Bx, Cx >, a szukamy jego Y Oy = h * ( w - ( Ox - min( Bx, Cx ) ) ) / w; I masz Y od którego Y obiektu powinno być mniejsze. ;P Można też użyć prostego równania prostej ax + b z takim samym warunkiem. ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 22 Października 2007 Autor Udostępnij Opublikowano 22 Października 2007 Zaraz sprawdzę czy działa. BTW: Jak to się widzi, jeśli takich obiektów ma być sporo xD? Zrobiłem sobie, i dodałem obiektowi ruszanie sie na boki (oś x) czy jeśli jest ok to obiekt powinien poruszac sie wtedy po wyznaczonej linii? Bo u mnie to dany obiekt porusza się tworząc takie jakby lustrzane odbicie wyrysowanej linii xD wyrysowałem se twój kod na kartce i podstawiłem liczby i Tymon zrobił błąd, i to pewnie specjalnie!! ARGH XD Nie działa ;( To zwraca małe wartosci, nie większe niż szerokość tej linii. Tu jakiś wał jest drogi tymonie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 22 Października 2007 Autor Udostępnij Opublikowano 22 Października 2007 jeśli linia mi sie zaczyna na x=0 to wtedy jeszcze udało mi sie poprawic... ale jak juz jest dalej w roomie to punkt lata nad linią Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 23 Października 2007 Udostępnij Opublikowano 23 Października 2007 Ax = 100; Ay = 300; Bx = 400; By = 300; Cx = 100; Cy = 100; Ox = mouse_x; Oy = 0; //Szerokość w = Bx - Cx; //Wysokość h = By - Cy; //Jakiś obiekt O o danym X który należy do < Bx, Cx >, a szukamy jego Y Oy = By - ( h * ( w - ( Ox - Cx ) ) / w ); draw_set_color( c_black ); draw_line( Ox, 0, Ox, Oy ); draw_triangle( Ax, Ay, Bx, By, Cx, Cy, true ); draw_circle( Ox, Oy, 5, true ); draw_set_color( c_red ); draw_line( Bx, By, Cx, Cy ); Ale tutaj wszystko będzie się zmieniać w zależności od położenia punktów. Pomęcz to. ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 23 Października 2007 Autor Udostępnij Opublikowano 23 Października 2007 Eh... Czemu newbom dajesz gotowca a mi zawsze taki, żebym sam dochodził xD. Ha, tu już wszystko working xD genialnie xD PS: Tymon napisz na gg, bo mam też inny problem, taki związany z GMem, ale nie wiem czy w ogóle idzie go rozwiązać, i nie jest to problem matematyczny. Na forum go nie bardzo opisywać, więc napisz jakby co proszę. 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ę