Skocz do zawartości

Burzenie murków nie działa.


Grela
 Udostępnij

Rekomendowane odpowiedzi

Ja bym to zrobił tak:

1. Ustawiłbym origin spritów na center.

2. W roomie dał tylko jeden murek i postać tak ustawioną nad nim, aby sprity obiektów się ze sobą stykały.

3. Odpalił debug, add expression to... i wpisał murek.y-player.y (zapamętaj wartość)

4. Potem dal w stepie murku:

 

if(y-postac.y==(wartość, którą odczytałeś z debuga)&&abs(x-postac.x)<=(połowa szerokości sprite murka))

instance_destroy()

 

Wtedy murek zniknie, gdy postac będzie na nim stała.

 

Powinno działać, jeżeli Twój murek ma ciągle te same wymiary.

Odnośnik do komentarza
Udostępnij na innych stronach

W evencie colision murku:

 

GML
if objectPlayer.y > y

{instance_destroy()}

jednak to nie działa. Niewiem, dlaczego. Gdzie tu jest błąd?

Y idzie w prawo, tak?

Jak dajesz twój kod w colision, to trzeba stać na prawej części murku żeby murek zniknął.

Ave Ingen. Rip Ingen.

OFFTOP: AntY - twoja sygnaturka ma 157 px wysokości =D

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra dzięki. :P

Jeszcze napisze tu dwa pytania, żeby nie robić nowego tematu

 

Mam taki kod

 

GML (create hera)
hero_speed=0

air=0

 

GML (step hera)
if place_free(x,y+1)

{gravity=0.5}

else

{gravity=0}

 

if hero_speed<5

{hero_speed+=0.10}

 

if air=0

if keyboard_check(vk_right)

{if place_free(x+hero_speed,y)

{x+=hero_speed}}

else

if keyboard_check(vk_right)

{if place_free(x+5,y)

{x+=5}}

 

if air=0

if keyboard_check(vk_left)

{if place_free(x-hero_speed,y)

{x-=hero_speed}}

else

if keyboard_check(vk_left)

{if place_free(x-5,y)

{x-=5}}

 

if keyboard_check(vk_up)

{if !place_free(x,y+1)

{vspeed=-10

air=1}}

 

if keyboard_check_released(vk_right) or keyboard_check_released(vk_left)

{hero_speed=0}

 

GML (event kolizji z murkiem)
move_contact_solid(270,4)

vspeed=0

air=0

 

Chodzi mi o to, żeby hero nie używał rozpędzania się gdy jest w powietrzu, ale zamiast tego nie moge w powietrzu teraz się wogóle ruszyć. Co zrobiłem źle?

 

I jeszcze jedno.

 

Na podstawie tego kodu co dałem, jak zrobić, że jak puszcze np. klawisz strzałki w prawo, to hero będzie powolutku hamował(tarcie)? :P

 

Z góry dzięki

Odnośnik do komentarza
Udostępnij na innych stronach

Co do pierwszego...

 

GML
if air=0

if keyboard_check(vk_right)

{if place_free(x+hero_speed,y)

{x+=hero_speed}}

else

if keyboard_check(vk_right)

{if place_free(x+5,y)

{x+=5}}

 

Zamiast tego napisz to:

GML
if(air==0)

{

if keyboard_check(vk_right)

{

if place_free(x+hero_speed,y)

{

x+=hero_speed;

}

}

}

else

{

if keyboard_check(vk_right)

{

if place_free(x+5,y)

{

x+=5;

}

}

}

Wydaje mi się, że chodzi o te klamry.

 

E. To samo zrób jeżeli chodzi o lewą stronę.

 

E2. Co do drugiego spróbuj tego:

if(!keybord_check(vk_left)&&!keybord_check(vk_right)&&hero_speed)

hero_speed-=0.1;

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...