MaxGaming Opublikowano 7 Listopada 2016 Udostępnij Opublikowano 7 Listopada 2016 Jak zrobić(chodzi mi raczej o skrypt do obliczenia nowego kierunku), żeby instancja odbijała się od krawędzi ekranu, bez robienia niewidzialnych obiektów ścian itp.? Po prostu potrzebuję własnego skryptu move_bounce :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 7 Listopada 2016 Udostępnij Opublikowano 7 Listopada 2016 może po dojściu do określonego collision line zmieniałby się kierunek ruchu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 7 Listopada 2016 Autor Udostępnij Opublikowano 7 Listopada 2016 No tak tylko jak wyliczyć ten kierunek ruchu? Problem z wyzwalaczem jest niewielki, można chociażby sprawdzić po prostu x i y względem wielkości roomu i jego krańców, ale chodzi o to jak wyliczyć. Normalnie robię to funkcją move_bounce_all/move_bounce_solid, ale one odbijają naszą instancję od innej instancji, a co jeśli chcemy odbić go od niewidzialnej przeszkody? Na pewno jest na to wzór i na pewno ktoś już robił taki skrypt, ale chyba słabo google'owałem bo nie znalazłem :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 7 Listopada 2016 Udostępnij Opublikowano 7 Listopada 2016 nie wystarczy odwrócić prędkości? GML speed=-speed Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 7 Listopada 2016 Udostępnij Opublikowano 7 Listopada 2016 Żadne collision line! Przecież wystarczy sprawdzać pozycję! GML (step) if(x<0 || x>room_width || y<0 || y>room_height) { x=xprevious//Po to aby przestac spelniac warunek y=yprevious speed*=-1 //albo //direction+=180 } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 7 Listopada 2016 Autor Udostępnij Opublikowano 7 Listopada 2016 Threef nie zrozumialeś, to samo mu napisałem z tym sprawdzaniem pozycji... Co do: GML speed*=-1 //albo //direction+=180</span></span> pierwsze mi cofnie obiekt, a drugie obróci o 180 stopni(to zupełnie nie to samo), żadne nie odbije ścieżki, nie zadziała tak jak move_bounce :/ To by zadziałało tylko przy założeniu że zawsze odbija się instancja pod kontem prostym.... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 7 Listopada 2016 Udostępnij Opublikowano 7 Listopada 2016 Na bocznych krawędziach odbijaj hspeed, a na górnej i dolnej vspeed. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 7 Listopada 2016 Autor Udostępnij Opublikowano 7 Listopada 2016 Na bocznych krawędziach odbijaj hspeed, a na górnej i dolnej vspeed. Ale słuchajcie - odbijać ma się nie tylko pod kontem prostym... Sprawdźcie jak działa ta funkcja w GMie bo chyba nie pamiętacie i nie rozumiecie o co mi chodzi :/ To ma działać jak w arkanoidzie z pileczką odbijającą się od ścian, nie odbija się zawsze pod kontem prostym, rozumiecie o co mi chodzi mniej więcej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 7 Listopada 2016 Udostępnij Opublikowano 7 Listopada 2016 No to sprawdź to co Uzjel podał. Bo tak działa ta funkcja. Nie odbija ona pod kątem prostym. ;) GML if(x<0 || x>room_width) { x=xprevious//Po to aby przestac spelniac warunek y=yprevious hspeed*=-1 } if( y<0 || y>room_height) { x=xprevious//Po to aby przestac spelniac warunek y=yprevious vspeed*=-1 } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 7 Listopada 2016 Autor Udostępnij Opublikowano 7 Listopada 2016 Sprawdzę jak wrócę do domu, ale pytanie jeszcze czy direction będę miał poprawne? Speed nie może być u mnie na minusie, a direction potrzebuje do określania wielu innych parametrów, i czy będzie to ok? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 7 Listopada 2016 Udostępnij Opublikowano 7 Listopada 2016 Spoko, powinno zadziałać. Direction się buduje z hspeed i vspeed. Tak samo jak speed. Więc twój speed nie będzie ujemny :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 8 Listopada 2016 Autor Udostępnij Opublikowano 8 Listopada 2016 Rzeczywiście działa, ja zawsze omijałem vspeed i hspeed, bo myślałem, że to jest niezależne od direction i nie będę mógł później poprawnie sprawdzać direction, a tu proszę :P Problem rozwiązany, dzięki wszystkim :) @edit: @Threef powinienem zastosować to z przywracaniem do poprzedniego id? Bo wychodząc z założenia, że speed > 0(w innym wypadku nie zderzy się ze ścianą i tak, więc zawsze tak będzie) to przecież zmiana kierunku na odwrotny i tak spowoduje cofnięcie instancji tak, aby nie spełniała w dalszym ciągu warunku. Tylko tak się zastanawiam czy dobrze myślę, czy jakiegoś wyjątku nie pominąłem dlatego pytam, czy bez tego zawsze będzie działać? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 8 Listopada 2016 Udostępnij Opublikowano 8 Listopada 2016 Możesz zamiast tego ustawić gracza wewnątrz rooma. Jeżeli okazuje się, że na przykład przyspieszasz obiekt, który się odbija to może dojść do sytuacji, że wypadnie po za ekran i będzie się tam odbijała. GML x = clamp(0,room_width); y = clamp(0,room_height); 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ę