Skocz do zawartości

Przepychanie


OriPL

Rekomendowane odpowiedzi

jak zrobic przepychanie przedmiotow?? np: Player popycha beczke?? nie moge znalesc takiego przykladu.

 

kurde robiłem taki obszerny przykład możesz np tak:

 

w colizji beczki z playrem

 

hspeed=player.hspeed;

 

spróbuj nie chce mi się od nowa całego pisać

Odnośnik do komentarza
Udostępnij na innych stronach

Ale chodzi o grę z góry, czy z boku?

 

Jak z góry, to gracz przy kolizji z beczką: (jest wiele sposobów)

GML
dir=point_direction(x,y,other.x,other.y)

other.x+=lengthdir_x(speed+1,dir)

other.y+=lengthdir_y(speed+1,dir)

a Jak z boku to może tak :

GML
other.x+=(other.x-x)
pewnie nie działa, ale co tam :P
Odnośnik do komentarza
Udostępnij na innych stronach

Z boku:

 

Kolizja Playera z beczka z lewej strony

 

with(beczka)
{
x+=0.1; //Nie wiem czy to dobra liczba pobrobuj
}

 

Kolizja Playera z prawej strony

 

with(beczka)
{
x-=0.1;
}

 

Nie jestem na stowe pewien czy to dziala bo nie patrzalem

 

edit: to chyba najprostrzy sposob, Mozne tez zrobic tak jak @Bixon i dac przy jakims tam dystansie objekt beczka przesuwa sie o 1 pixel w prawo

Odnośnik do komentarza
Udostępnij na innych stronach

Znalazłem na komputerze stary przykład który kiedyś robiłem.

Dawno temu jakiś rok ;)

Dodałem komentarze, być może ci się przyda ;)

 

https://gmclan.org/up87_12_przyklad_beczki.html

 

Edit: Jak pozmieniasz sobie w kodzie trochę to będziesz miał dokładnie to co ty zrobiłeś na klockach.

Jednak mój przykład na dłuższą metę jest mało wydajny ;p. Można to zrobić inaczej.

Grafika jest tylko w jednym kierunku ;p

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ę
  • Ostatnio przeglądający   0 użytkowników

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