sonicfanmilosz@o2.pl Opublikowano 24 Lutego 2015 Udostępnij Opublikowano 24 Lutego 2015 Mam problem... Obiekt o_kubek ma po upadku się rozwalić ale tylko po upadku z wysokości 5 kratek w roomie wielkości x 32, y 32. I własnie nie wiem jak to zrobić... Proszę o pokazanie mi łopatologicznie jak to się robi... :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 24 Lutego 2015 Udostępnij Opublikowano 24 Lutego 2015 Zrób licznik. Jeżeli kubek stoi(zerowa grawitacja): Sprawdź czy licznik jest większy lub równy minimalnej wysokości upadku. Jeżeli tak, rozbij go. Jeżeli nie, zresetuj licznik do zera. Jeżeli kubek spada: Dodaj do licznika tyle pikseli ile spada. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 25 Lutego 2015 Udostępnij Opublikowano 25 Lutego 2015 Pierwsze co mi przyszło na myśl to wykorzystanie "distance to object".Źle kombinuje? GML if (distance_to_object(obj_podloga ) =5) { instance_change(obj_kubek_rozbity, false); Aczkolwiek ja nic nie umiem więc to niekoniecznie dobry trop:P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 25 Lutego 2015 Udostępnij Opublikowano 25 Lutego 2015 GML if(y<=room_height-5*32) { instance_destroy(); }; Nie sprawdzałem więc może być literówka, ale chyba chodziło mu bardziej o coś w ten deseń ;) I miałeś dwa błędy, po 1: nie "=" tylko ">=" chyba chciałeś użyć, po 2 brak jednego średnika(albo zaczynasz i kończysz if-a średnikiem, albo nie używasz wcale, a Ty rozpocząłeś średnikiem, a zakończyłeś bez, więc by pewnie się nie skompilowało, ew. by powodowało masę błędów, gdyby coś u dołu skryptu było. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 25 Lutego 2015 Udostępnij Opublikowano 25 Lutego 2015 Sprawdzasz czy kubek Twój spada. Jakoś tak GML if(gravity) { //Ladny kod } No i robisz sobie jak napisał już Vader, licznik czy było 5 pikseli. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sonicfanmilosz@o2.pl Opublikowano 25 Lutego 2015 Autor Udostępnij Opublikowano 25 Lutego 2015 Zrób licznik. Jeżeli kubek stoi(zerowa grawitacja): Sprawdź czy licznik jest większy lub równy minimalnej wysokości upadku. Jeżeli tak, rozbij go. Jeżeli nie, zresetuj licznik do zera. Jeżeli kubek spada: Dodaj do licznika tyle pikseli ile spada. Wiem ,że nikt nie zrobi za mnie wszystkiego i nie chcę żeby tak było. Ale no cóż wszystko ładnie pięknie tyle że ja nie wiem co to jest licznik (znaczy trochę wiem) a w dodatku nie mam zielonego pojęcia jak go zrobić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 25 Lutego 2015 Udostępnij Opublikowano 25 Lutego 2015 W sumie jeszcze to zależy jaką masz grawitacje, ale moim zdanie sposób ze sprawdzeniem odległości zamiast licznika jest lepszy, ale pewnie o czymś nie pomyślałem. Tylko, że zamiast tego destroy trzeba by zrobić zmienną, i po upadku, gdy ta zmienna wykaże, że spadł z 5 KRATEK(o ile go zrozumiałem chodziło mu o 5*32, a nie 5 pikseli, ale niech on się wypowie) to wtedy się rozwala. Nie wiadomo co dokładniej chcesz osiągnąć, ale nie rozumiem całej koncepcji z licznikiem dlaczego miałoby być to prostsze/optymalniejsze od wcześniejszego zmierzenia odległości. Wyliczasz ew. tylko gdzie upadnie i sprawdzić odległość od tego punktu względem osi Y-ówt. Chyba, że masz skomplikowaną fizykę np.: z udziałem tego silniczka w GMSie(ja jeszcze z niego nie korzystałem, bo platformówek jeszcze w GMS nie miałem okazji robić i nie wiem jak on działa i może wtedy rzeczywiście jest trudniej), ale po twoich postach domniemam, że jest jakaś kompletnie podstawowa "fizyka". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 25 Lutego 2015 Udostępnij Opublikowano 25 Lutego 2015 Wiem ,że nikt nie zrobi za mnie wszystkiego i nie chcę żeby tak było. Ale no cóż wszystko ładnie pięknie tyle że ja nie wiem co to jest licznik (znaczy trochę wiem) a w dodatku nie mam zielonego pojęcia jak go zrobić. Kiedy powiedziałem licznik miałem na myśli "zrób sobie zmienną w której będziesz trzymać ile już kubek spadł" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 25 Lutego 2015 Udostępnij Opublikowano 25 Lutego 2015 Tak, tylko chodzi o to, by co krok doliczać dajmy na to 1px który zdążył obiekt przemierzyć, czy tak jak ja mówiłem wyliczyć z góry i od razu zapisać? Bo to pierwsze rozwiązanie przynajmniej przy podstawowej fizyce jest dla mnie słabym pomysłem. Dlatego chyba źle Cię zrozumiałem i myślałem, że chcesz naliczyć podczas spadania, jaką drogę zdążył przebyć :) Ale wracając do tematu, Sonic - czegoś jeszcze nie wiesz, czy dałeś radę? Ponieważ Twój problem został już praktycznie rozwiązany za Ciebie o ile dobrze Cię zrozumiliśmy ;) @e: Przeczytałem jezcze raz Twoją wypowiedź i o ile dobrze rozumiem to Ty jednak proponujesz odmierzanie trasy obiekty podczas jego spadania? Tylko dlaczego to ma być lepsze od wyliczeni trasy na początku - tylko raz, a więc szybko i prosto? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 26 Lutego 2015 Udostępnij Opublikowano 26 Lutego 2015 Najprostsze rozwiązanie to zapisanie w zmiennej pozycji w której kubek zaczął spadać. A potem porównanie jej z pozycją na jakiej uderzył w ziemię. Ale z ciekawości powiem że jeżeli używasz gravity to możesz też zrobić prowizorkę i sprawdzać czy vspeed przy uderzeniu jest większy od jakiejś wartości. Wzór na obliczenie tego to jeden z podstawowych w fizyce... ale ja zawsze byłem noga z podstaw fizyki. :P 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ę