Skocz do zawartości

Kaczka która ma grawitacje i za mną idzie.


Drwal

Rekomendowane odpowiedzi

Otóż potrzebuję kodu na następującą sytuacje:

bohater dotyka jajka, z którego wykluwa się kaczka. I teraz tak: kaczka ma podążać za bohaterem, ale musi mieć podobny do bohatera ruch platformowy - spadać kiedy nic nie ma pod stopami i za nim iść.

 

EDIT: Aha! Jeszcze ma zmieniać sprity gdy patrzy w lewo czy w prawo.

Odnośnik do komentarza
Udostępnij na innych stronach

Create dla kaczki:

dotknieta=0;

 

Event Colision z bohaterem dla kaczki:

dotknieta=1;

 

Step dla kaczki:

vspeed = 2;

if distance_to_object(obj_bohater)>16

{

move_towards_point(obj_bohater.x,obj_bohater.y,5)

}

 

 

(platformy muszą być solid)

 

Keyboard left:

sprite_index=spr_lewo;

 

Keyboard right:

sprite_index=spr_right;

 

Czy jakoś takoś =D Pisane z pamięci

Odnośnik do komentarza
Udostępnij na innych stronach

Ale żeś namieszał! Chodziło miżeby po dotknięciu bohatera jajo zmieniało się w kaczke, ale to nic. Na początku mam błąd "unkown variable "x" :death: ". Kaczka gdy się tworzy to leciiiii daleko poza "y" room'u. Ktoś jeszcze to potrafi zrobić?

Odnośnik do komentarza
Udostępnij na innych stronach

Jajko

kolizja z bohaterem (prawdopodobnie obiektem mario, sądząc po tym, co masz w sygnie)

GML
instance_create(x,y,kaczka);

repeat(8) {

th=instance_create(x,y,skorupka);

th.speed=choose(4,5,6,7,8);

th.direction=random(360);

}

instance_destroy();

 

Spróbuj to zrobić jakoś tak:

kaczka:

step kaczki:

GML
gravity_direction=270;

if place_free(x,y+1)

gravity=0.5;

else

gravity=0;

if vspeed>12 vspeed=12;

if mario.x-64<x and place_free(x+4,y)

x+=4;

if mario.x+64>x and place_free(x-4,y)

x-=4;

if mario.x<x

dir=-1;

else

dir=1;

if dir=1 sprite_index=kaczka_prawo;

if dir=-1 sprite_index=kaczka_lewo;

dir to kierunek gapienia się kaczki. 1 to prawo, -1 to lewo.

Dwie ostatnie linijki można zastąpić tym:

GML
image_xscale=dir;

Wtedy musisz mieć zarejestrowanego GMa (chyba) i origin sprita musi być na środku.

 

klawisz skoku:

GML
alarm[0]=64/4;

 

alarm[0]:

twój skrypt skoku, np:

GML
if !place_free(x,y+1) vspeed=-8;

 

kolizja z ziemią:

twoja kolizja z ziemią.

 

Powinno działać, ja tego nie testowałem. Kaczka nie będzie grzeszyć inteligencją, ale będzie za graczem łazić i skakać.

Odnośnik do komentarza
Udostępnij na innych stronach

TeoTN, ten przykład jest niezbyt dobry. Bohater ma źle zrobioną grawitację (y+1 zamiast y+sprite_height+2). vspeed=2 jest po prostu nie potrzebne. Do tego za coś takiego creditsy brać? Skandal, bez tych creditsów byłbym w stanie to zrozumieć.

Odnośnik do komentarza
Udostępnij na innych stronach

TeoTN dzięki. Jesteś w Credits, bo uzyskałem zadowalający efekt :thumbsup

 

 

Edit: A co można zrobić żeby ta kaczka omijała obiekty solid by dotrzeć do obj_hero?

 

 

 

Hero --------------\

 

SOLID|SOLID|SOLID| ^ |SOLID|SOLID

|-------------------/

|

kaczka

 

 

P.S: Za TĄ pomoc tym bardziej dam do Credits.

Odnośnik do komentarza
Udostępnij na innych stronach

Był taki przykład sterowania kursorem - po kliknięciu myszą na mapie tworzył się obiekt, do którego zmierza inny obiekt. Znajdź ten przykład, przerób (zamiast zdążania do celownika to do bohatera) i masz gotowe =) Nie zrobię Ci niestety tego, bo nie mam dostępu do GMa w tej chwili. Aha i zamień vspeed=2 na gravity=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ę
  • Ostatnio przeglądający   0 użytkowników

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