pablo1517 Opublikowano 27 Stycznia 2013 Udostępnij Opublikowano 27 Stycznia 2013 Siemka, nie było mnie tu milion lat - ale teraz jestem z banalnym pytaniem zapewne. Chodzi mi o to, czy jest jakiś prosty sposób by zrobić odbicia przynajmniej na takim poziomie jak move bounce all w GML? Tzn. tak jakby kod źródłowy tej funkcji bo nie robię tego co robię w GML ^^ i zaczyna wyłazić hehe. Chodzi o powiedzmy proste kółka na ekranie, które odbijaja się od siebie i krawędzi ekranu, żeby ten kąt odbicia był realistyczny, a nie piźnięty random xP. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lechu4444 Opublikowano 27 Stycznia 2013 Udostępnij Opublikowano 27 Stycznia 2013 nie musisz robić random wystarczy że zmienisz znak z + na - w momencie kolizji powiedzmy masz zmienne które odpowiada za pozycje x i y oraz zmienne które odpowiadają za to o ile ruszy się obiekt na x i y nazwijmy je xw, yw. Kiedy obiekt osiągnie jakąś pozycje na ekranie (np. koniec okna czy zetknięcie się z jakimś obiektem) xw lub yw zmienia znak na przeciwny w zależności od tego jak obiekt jest położony w stosunku do końca okna lub obiektu. Mam nadzieję że nie jest to jakoś zawiło napisane i sobie poradzisz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 27 Stycznia 2013 Udostępnij Opublikowano 27 Stycznia 2013 nie musisz robić random wystarczy że zmienisz znak z + na - w momencie kolizji powiedzmy masz zmienne które odpowiada za pozycje x i y oraz zmienne które odpowiadają za to o ile ruszy się obiekt na x i y nazwijmy je xw, yw. Kiedy obiekt osiągnie jakąś pozycje na ekranie (np. koniec okna czy zetknięcie się z jakimś obiektem) xw lub yw zmienia znak na przeciwny w zależności od tego jak obiekt jest położony w stosunku do końca okna lub obiektu. Mam nadzieję że nie jest to jakoś zawiło napisane i sobie poradzisz. W skrócie to chyba chodziło o takie coś: vSpeed = -vSpeed; //predkosc pionowa hSpeed = -hSpeed; //predkosc pozioma //a tak wyliczasz pozycję, dla przykładu x += vSpeed; y += hSpeed; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 27 Stycznia 2013 Udostępnij Opublikowano 27 Stycznia 2013 Jeszcze bardziej w skrócie: Odwracasz wektor ruchu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 27 Stycznia 2013 Autor Udostępnij Opublikowano 27 Stycznia 2013 Ale wy mądrzy jesteście ;>? A co jeśli krążek uderzy w ścianę, która będzie pod trochę innym kątem niż pionowa lub pozioma ;>. Co jeśli jeden krążek uderzy w drugi krążek? Czy wygraliście kiedyś w bilard xD? Fizyka nie jest TAKA PROSTA. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 27 Stycznia 2013 Udostępnij Opublikowano 27 Stycznia 2013 No fizyka to może i nie jest taka prosta ale move_bounce_all() właśnie takie jest :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 27 Stycznia 2013 Udostępnij Opublikowano 27 Stycznia 2013 Spróbuj użyć jakiejś biblioteki fizycznej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 27 Stycznia 2013 Udostępnij Opublikowano 27 Stycznia 2013 Ale wy mądrzy jesteście ;>? A co jeśli krążek uderzy w ścianę, która będzie pod trochę innym kątem niż pionowa lub pozioma ;>. Co jeśli jeden krążek uderzy w drugi krążek? Czy wygraliście kiedyś w bilard xD? Fizyka nie jest TAKA PROSTA. Musiałbyś nadać wektor normalny każdej ścianie, i przy zderzeniu obliczać kąt odbicia. ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 27 Stycznia 2013 Udostępnij Opublikowano 27 Stycznia 2013 Generalnie musiał byś znać wektor normalny ( prostopadły do powierzchni ściany ) i odbić względem niego wektor ruchu @edit: za wolno xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 3 Lutego 2013 Autor Udostępnij Opublikowano 3 Lutego 2013 Czyli kąt padania = kąt odbicia? Dobrze to przy ścianach jeszcze da się zrobić, zastanawiam się tylko nad obiektami o nieregularnych kształtach, lub też innych okrągłych obiektach. No i z tego co pamiętam move_bounce_all raczej w miare sensownie odbijał te obiekty. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 3 Lutego 2013 Udostępnij Opublikowano 3 Lutego 2013 Nie, nie odbijał sensownie. Co do kuli to wyznaczenie normalnej jest banalne. Jak widzisz point_direction ze środka kuli wystarczy. A do nieregularnych kształtów to widziałem ten skrypt: http://www.gmlscripts.com/script/normal_detect jeszcze go nie używałem ale chyba tutaj może pomóc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 4 Lutego 2013 Autor Udostępnij Opublikowano 4 Lutego 2013 Z tą kulą to nie, bo jeśli ja uderzę lecąc pod kątem powiedzmy 45 stopni w spód kuli to to nie będzie point direction od srodka kuli xP, aczkolwiek kule od kuli łatwo odbic w miarę sensownie bez zaawansownej fizyki. Skrypt sprawdze. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 4 Lutego 2013 Udostępnij Opublikowano 4 Lutego 2013 point_direction od środka do miejsca uderzenia. Narysowałem nawet ten twój przypadek 45 stopni. Zaznaczyłem na zielono kąt padania i go trzeba odbić, tzn po 2 stronie tej normalnej musi powstać taki sam kąt. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 4 Lutego 2013 Udostępnij Opublikowano 4 Lutego 2013 A jak dobrze przekazać prędkość? Ile ma stracić obiekt uderzający, a ile dostać uderzony? Kiedyś też próbowałem bez fizyki i na tym poległem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 4 Lutego 2013 Udostępnij Opublikowano 4 Lutego 2013 Nad tym się jeszcze nie zastanawiałem. Bo mi był potrzebny tylko kąt w mojej grze. Ale zaciekawiło mnie to i coś poszperam w necie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 14 Lutego 2013 Autor Udostępnij Opublikowano 14 Lutego 2013 Faktycznie, mi tyle wystarczy, ale jeśli faktycznie coś znajdziesz to mozesz tu wrzucic bo chętnie zobaczę. 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ę