Gość Opublikowano 20 Października 2009 Udostępnij Opublikowano 20 Października 2009 Witam :) Mam kolejny problem, a mianowicie z lengthdirami i originami już nic grzebać nie mogę, więc pozostaje mi zrobić coś innego. A więc chodzenie mam na WSAD i jest to zmiana x i y. Ale originy w obrazku (obrazek takich samych rozmiarów co dałem w poprzednim temacie) są ustawione na X: 11 i Y: 27 (przypominam, że obrazek jest 43z37 px) i mam ustawione obracanie do myszki, i kiedy jestem np. prawym bokiem gracza przy ścianie i obrócę się w lewą stronę, to gracz wchodzi w ścianę i nie mogę się ruszyć. Jedynie muszę się obrócić do poprzedniej pozycji i znów mogę chodzić. No i moje pytanie brzmi, czy można zrobić to jakoś tak (nie wiem, kolizja sprite'a czy cuś :P) żeby przy dotknięciu ściany obojętnie z której strony, gracz zatrzymywał się. A zatrzymywał się po to, żeby nie wchodził w ściany :P Chyba dość jasno się wypowiedziałem :) Z góry dzięki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 20 Października 2009 Udostępnij Opublikowano 20 Października 2009 a co masz ustawione w kolizji ze ścianą? Przy poruszaniu masz dodane "if place_free(...)"? Może maska coś pomoże Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 20 Października 2009 Udostępnij Opublikowano 20 Października 2009 W kolizji ze ścianą nie mam nic, tylko mam w poruszaniu się place_free. A o masce nie myślałem. Zresztą, nie za bardzo wiem, jak w ogóle jej użyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 20 Października 2009 Udostępnij Opublikowano 20 Października 2009 Narysuj jakąś okrągłą maskę trochę większego rozmiaru niż głowa, daj jej orginy na środku powinno być dobrze ale będzie głupio wyglądać bo sprit gracza nadal będzie wchodził na ściany tyle że nie będziesz się bloczyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 20 Października 2009 Udostępnij Opublikowano 20 Października 2009 To przy poruszaniu sprawdzaj, czy miejsce dalej jest wolne w porównaniu do tego co masz teraz. Bo masz przesunięty orgin przez co część obiektu może wchodzić na ścianę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 20 Października 2009 Udostępnij Opublikowano 20 Października 2009 Ostatnio coś ciężko kapuję :P Nie mogę załapać jak wykonać to co zasugerował lenin. Mógłbyś podać chociaż, jak to ustawić? Czyli: GML if (place_free(...)) { if (place_free(...)) { // --- // } } No bo naprawdę nie potrafię tego ogarnąć :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 20 Października 2009 Administratorzy Udostępnij Opublikowano 20 Października 2009 przy kolizji daj x=xprevious; y = yprevious; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 20 Października 2009 Udostępnij Opublikowano 20 Października 2009 bo w poruszaniu masz pewnie mniej więcej GML if place_free(x + lengthdir_x(5, direction), y) x+=lengthdir_x(5,direction) Więc zamiast tej piątki przy place_free daj np. 10 i sprawdź wtedy. Nie jestem pewien czy to załatwi sprawę, ale może coś w tym jest. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 20 Października 2009 Udostępnij Opublikowano 20 Października 2009 Hmm... Nie używam przy tym lengthdirów. Może to coś da :) Sprawdzam i w edicie dam, czy działa :) 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ę