rryk Opublikowano 7 Marca 2007 Udostępnij Opublikowano 7 Marca 2007 robie gierkę platformówkę /strzelaninkę i mam problem bo chce zrobić wiecie ścianę aby grac nie mógł wyjść poza ekran jak to zrobić może wystarczy tylko przekształcić podłogę move_contact_solid(270,4) PLS help Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maxpayn Opublikowano 7 Marca 2007 Udostępnij Opublikowano 7 Marca 2007 Jeśli chcesz zrobić aby nie mógł wyjść za ekran to w step wklej taki kodzik x = max( min( x, room_width), 0 ); y = max( min( y, room_height), 0 ); a jeśli chcesz zebt nie przelecial przez podloge to wpisz przy kolizji z podloga move_contact_solid(270,4) vspeed = 0 Pozdro :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
spyro Opublikowano 7 Marca 2007 Udostępnij Opublikowano 7 Marca 2007 On raczej wiedział, jak zrobić to z podłogą, prosił tylko o ścianę xD A nie da się po prostu zrobić ściany i dać jej solid ?? :P Ja bym tak zrobił, aha i jeszcze chcę cię przestrzec przed używaniem tych klocków typu "wrap when moving outside" itp. bo to zwykły szajs i prawie wogle nic nie daje xP Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rryk Opublikowano 7 Marca 2007 Autor Udostępnij Opublikowano 7 Marca 2007 ok ale to dziala tylko na lewa strone mapki na prawa juz nie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
spyro Opublikowano 7 Marca 2007 Udostępnij Opublikowano 7 Marca 2007 No to zamień później min z max, może zadziała xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rryk Opublikowano 7 Marca 2007 Autor Udostępnij Opublikowano 7 Marca 2007 dalej nic nie działa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piczer Opublikowano 7 Marca 2007 Udostępnij Opublikowano 7 Marca 2007 spróbuj tak: x = max( min( x, room_width-32), 0 ); y = max( min( y, room_height-32), 0 ); *Gdzie 32 to podaj swoj wymiar sprite'a Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
rryk Opublikowano 7 Marca 2007 Autor Udostępnij Opublikowano 7 Marca 2007 ale ja mam animacje wstawioną EDIT: działa ale czemu odstęp od końca mapy wynosi ok 1cm Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piczer Opublikowano 7 Marca 2007 Udostępnij Opublikowano 7 Marca 2007 To powinien zadziałać taki kod, ale jak testowałem, go to nie działał (nie wiem dlaczego): x = max( min( x, room_width-sprite_get_width(self)), 0 ); y = max( min( y, room_height-sprite_get_height(self)), 0 ); Może u ciebie zadziala? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 7 Marca 2007 Udostępnij Opublikowano 7 Marca 2007 tak myślałem ze zadziała tylko na jedną strone mapki. a może zwyczajnie if (x>room_width) x=room_width; if (x<0) x=0; nie bedzie działać tak dokładnie ale zawsze ci zabroni wyleść za room Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 7 Marca 2007 Udostępnij Opublikowano 7 Marca 2007 W step: if x > room_width OR x < 0 { x=xprevious; } if y > room_height OR y < 0 { y=yprevious; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 7 Marca 2007 Udostępnij Opublikowano 7 Marca 2007 Ciekawe Marmot tylko że xprevious (tak samo z yprevious) nie działa jak powinno :/. Zawsze wskazuje identyczną wartosć jak x se sprawdz na debugu nawet na 1fps jak ustawisz Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 8 Marca 2007 Udostępnij Opublikowano 8 Marca 2007 To dziwne, ja używałem tej funkcji bardzo długi czas i zawsze działała jak powinna. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hanjuso Opublikowano 8 Marca 2007 Udostępnij Opublikowano 8 Marca 2007 Z tego co wiem, te zmienne dzialaja ale tylko w end czy tam begin step. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
spyro Opublikowano 8 Marca 2007 Udostępnij Opublikowano 8 Marca 2007 A nie prościej: if x > room_width { x=room_width-1; } if x < 0 { x=1 } if y > room_height { y=room_height-1; } if y < 0 { y=1 } albo: if x > room_width or x < 0 { speed = 0; } if y > room_height or y < 0 { speed = 0; } A nie się bawić w jakieś previous o wątpliwej skuteczności xD 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ę