Muchaszewski Opublikowano 1 Kwietnia 2010 Udostępnij Opublikowano 1 Kwietnia 2010 Maska kolizji znajduje się w oknie tworzenia obrazku, tam gdzie masz opcje wczytaj, edytuj itd. Jeżeli masz GM8 te opcje są w Modyfi Mask, a jeżeli 7.1 i starszą to od razu w tamtym oknie. Tam poszukaj Bounding Box. W tym są opcje Automatic, Manual, i Full image. Jeżeli masz Automatycznie to maska kolizji znajduje się automatycznie na całym obrazku gdzie coś narysowałeś, a ona odpowiada za to w którym miejscu pixelu po zderzeniu będzie się działa instrukcje kolizji. Załapałeś?? Dobrze jest wiedzieć, ale to sprawdzenie to będzie dokładnie to samo co to: GML //W kolizji woda = 1 //W draw draw_text(10,10,string(woda)) Jeżeli woda = 1 to maska kolizji jet dobrze ustawiona. Jeżeli za dużo dla ciebie dawać cz. projektu to daj kod od samego sterowania graczem i kolizji z "oWoda" Ale duży ten temat xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 1 Kwietnia 2010 Autor Udostępnij Opublikowano 1 Kwietnia 2010 Zaznaczyłem w Modify Mask. Gdzie była ta maska itd. "full". Ale i tak nic nie działa ;/ Edit: Korzystam z przykładu Dawiddsa (do platformówek) jeśli to pomoże. Edit2: Proszę, pomóżcie noo :/ Dodam jeszce, że mam poustawiane w wodze depth i jest ona przeźroczysta. Bo chcę żeby była przed graczem i prześwitywała :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muchaszewski Opublikowano 1 Kwietnia 2010 Udostępnij Opublikowano 1 Kwietnia 2010 Fajny kod poruszania w tym przykładzie xD Cały kod od poruszania dajesz w gigantyczną klamrę, i dodajesz tam warunek if woda=0{WIELKI KOD} a później go kopiujesz i wpisujesz do następnej klamry if woda = 1. Nie daje tu else bo możesz coś wymyślić że będziesz pływał w lawie czy coś xD. W tym 2 zmieniasz co tam chcesz i git majonez. Powinno działać, ale jeszcze sprawdzę. EDIT: Dobra poddaje się. Ten kod jest jak na mnie zbyt rozbudowany. Będzie ciężko. W tym przykładzie on zawsze wykrywa wodę, lecz kod jest tak rozpisany że sam musisz stwierdzić co się zmieni podczas wejścia do wody a co nie. W Create jest masa rzeczy które trzeba by było zmienić podczas wlotu do wody. W step możesz dopisać if woda = 1 && [To co niżej] {Ponowna deklaracja wszystkich rzeczy które mają się zmieniać.} if woda = 1 && [Jedna z zmiennych aby nie powtarzał tego co nie miara] {Ponowna deklaracja wszystkich rzeczy które mają się zmieniać.}. Chcesz więcej pomocy w tym temacie. Niestety musisz poradzić sobie sam. Ten kod powyżej działa. Miłego myślenia. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 1 Kwietnia 2010 Autor Udostępnij Opublikowano 1 Kwietnia 2010 ;/ Męczę się i męczę. Może player nadal nie koliduje z wodą? EDiT: Tak jak myślałem, to nie koliduje! Zrobiłem game_end i nic się nie stało :o Zmieniałem maski obu spritów ale nic nie pomaga ;O Jak zrobić tą kolizje, bo to chyba nie w kodzie problem :< Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assassin Opublikowano 1 Kwietnia 2010 Udostępnij Opublikowano 1 Kwietnia 2010 Zrób draw text, tak jak pisał muchaszewki i ja wcześniej. Wtedy będziesz mógł zobaczyć, czy w ogóle się zmienia. A błędy tak się właśnie wyszukuje, sprawdzasz po kolei każdą fazę wykonywania kodu.... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 1 Kwietnia 2010 Autor Udostępnij Opublikowano 1 Kwietnia 2010 No sprawdziłem właśnie nie przez text, tylko przez end_game ;o I gra się nie wyłącza :/ Więc dlaczego to nie działa? BŁAGAM, pomóżcie mi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 1 Kwietnia 2010 Udostępnij Opublikowano 1 Kwietnia 2010 Ułatwiłbyś nam zadanie, gdybyś udostępnił kod z kolizją. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 1 Kwietnia 2010 Udostępnij Opublikowano 1 Kwietnia 2010 O bosze!!! - człowiek, który chciał zderzyć się z hologramem... A twój bohater ma maske ustawioną ??? może tu też jest problem .? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 1 Kwietnia 2010 Autor Udostępnij Opublikowano 1 Kwietnia 2010 Mam ustawione po prostu zdarzenie "kolizja z oPlayer" a w tym skrypt global.woda = 1. Potem w oPlayer mam w Create: if global.woda = 1 { tutaj szybszkosc grawitacja tarcie itd. } A potem if global.woda = 0 { tutaj normalne tarcie itd. } Bochater jak i moja woda mają maski :/ Błagamm... niemożliwe, że jest to problem nie do rozwiązania :/ Jeszcze raz piszę, że mam playera w Depth -1, a wodę w depth -3 więc może o to chodzi? Hmm... ale raczej nie o to ;/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assassin Opublikowano 1 Kwietnia 2010 Udostępnij Opublikowano 1 Kwietnia 2010 No sprawdziłem właśnie nie przez text, tylko przez end_game ;o Ale to nie to samo... Text sprawdza, czy dobrze wyczytuje kolizję. End_game sprawdza, czy jak już wyczyta kolizję to coś się dzieje. Możesz mi na priv podesłać, jeśli nie chcesz udostępniać wszystkim, spróbowałbym wtedy coś zrobić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 2 Kwietnia 2010 Udostępnij Opublikowano 2 Kwietnia 2010 Ten kod wpisz do step, a nie do create: GML (step) if global.woda = 1 { //kod 1 } if global.woda = 0 { //kod 2 } global.woda=false; Create dotyczy tylko momentu tworzenia obiektu (kod ten wykonuje się tylko raz). Natomiast step wykonuje się ciągle. Zamiast pisac dwa if, możesz także napisać: GML (step) if(global.woda)//jeżeli global.woda jest prawdą, czyli oPlayer ma kolizję z wodą... { //kod 1 global.woda=false; } else//...w przeciwnym razie (czyli nie ma kolizji z wodą) wykonaj to: { //kod 2 } Wyjaśnienia wymaga tutaj global.woda=false. Gdy oPlayer ma kolizję z wodą global.woda=true (1). Wtedy wykonywany jest kod 1 i global.woda=false (0). Jeżeli oPlayer nadal ma kolizję z wodą to global.woda znowu wynosi true. Natomiast gdy oPlayer nie ma kolizji z woda, to global.woda=false. Wstawiając tylko global.woda=1; w kolizji woda-oPlayer, powodujesz, że po tej kolizji ciągle będzie wykonywany kod 1 (zmienna global.woda ciągle jest 1, niezależnie od tego czy oPlayer jest potem w wodzie czy też nie). Mam nadzieję, że nie ma w tym kodzie błędów i zrozumiałeś to co chciałem Ci napisać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 2 Kwietnia 2010 Udostępnij Opublikowano 2 Kwietnia 2010 no... step to raz, a dwa - jak wejdziesz raz to ci zmieni, ale potem bedziesz sie wszędzie na lądzie jak w wodzie poruszał... daj bohaterowi w step to: GML if distance_to_object(oWODA)=0 { global.woda=1 } else { global.woda=0 } i wtedy zdarzenie kolizji możesz wywalić :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 2 Kwietnia 2010 Autor Udostępnij Opublikowano 2 Kwietnia 2010 Dzięki wam! Działa! Bardzo dziękuję! Wszyscy macie miejsce w creditsach :P Eh, temat do zamknięcia :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciej-01 Opublikowano 2 Kwietnia 2010 Udostępnij Opublikowano 2 Kwietnia 2010 Sam sobie możesz zamknąć... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi