Skocz do zawartości
BanDa

Przyklejam się do ściany ?

Rekomendowane odpowiedzi

Zaczynam robić mini-gierkę 2d , na której polega że bohater biegnie a gracz musi mu pomagać omijać przeszkody , zbierać bonusy itd , itp.. No więc mam kod w STEP:

GML
hspeed=6 // bieg

//+grawitacja

if place_free(x,y+1)

{gravity = 2}

else

{gravity =0}

//-grawitacja

//+skok

if keyboard_check(ord('W'))

if! place_free(x,y+1)

{vspeed-=20}

//-skok</span></span></span>

 

W kolizji z blokiem ( po którym biegam ) mam

GML
move_contact_solid(270,2)

vspeed=0

 

A gdy zaczynam grę to dzieje się coś takiego :

https://gmclan.org/uploader/7788/wtf.png

 

Postać się klei i nie można nic zrobić , ani nie spada.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ustaw maskę przeszkody na prostokątną i upewnij się, że ma zaznaczone Solid.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Up:

Nein. Z maską już próbowałem. A solid mam w 100%..

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

._.

<sarkazm> No nie , nie pomyślałem o tym. </sarkazm>

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Kurde sory, fail z mojej strony ^^ Już wiem :P

to:

GML
move_contact_solid(270,2)

vspeed=0

Zamień na:

GML
move_contact_solid(270,4);

vspeed=0;

Krócej: Zamiast 2 wstaw 4 ^^

BTW. Stawiaj średniki na końcu. W GM'ie nie wymagane ale w innych językach tak, więc lepiej się przyzwyczajać :P

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A nie lepiej 20?

W końcu prędkość spadania tyle wynosi..

 

(albo chociaż 6, bo taka jest prędkość ruchu)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

To i tak nic nie daje.

Czeka na dalsze odpowiedzi.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

GML
vspeed=0;

Czy to nie czasem prędkość spadania?

GML
move_contact_solid(270,2)

vspeed=0

Jeżeli drugi argument move_contact_solid ustawia prędkość spadania na 2 a potem ją resetujesz to ... chyba wiesz co mam na myśli?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ha! Już mam :P Po prostu postać cały czas wbijała się w przeszkodę bo było ustawione hspeed=6;

Zamiast tego:

GML
hspeed=6 // bieg</span></span></span>

Daj to:

GML
if place_free(x+6,y) {x+=6}; // bieg</span></span></span>

Przy kolizji z blokiem

GML
move_contact_solid(270,4);

vspeed=0;

To najprostszy wg. mnie sposób :P

@EDIT Masz jeszcze na szybko sklejony przykład: https://gmclan.org/up8194_12_testttttt.html

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Okej , tym razem się udało ^_^

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×