Skocz do zawartości

Odwracanie się postaci po naciśnięciu klawisza.


kudlatty

Rekomendowane odpowiedzi

Information about object: object0

 

Sprite: sprite1

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent: <no parent>

Mask: <same as sprite>

 

Create Event:

execute code:

 

global.pkt=0;

 

Collision Event with object object4:

jump to the start position

 

Collision Event with object object5:

jump to the start position

 

Collision Event with object object6:

jump to the start position

 

Collision Event with object object8:

jump to the start position

 

Collision Event with object object10:

execute script script2 with arguments (0,0,0,0,0)

 

Key Press Event for <Left> Key:

start moving in directions 000100000 with speed set to 4

execute script script7 with arguments (0,0,0,0,0)

 

Key Press Event for <Up> Key:

start moving in directions 000000010 with speed set to 4

 

Key Press Event for <Right> Key:

start moving in directions 000001000 with speed set to 4

execute script script8 with arguments (0,0,0,0,0)

 

Key Press Event for <Down> Key:

start moving in directions 010000000 with speed set to 4

 

Key Release Event for <Left> Key:

start moving in directions 000010000 with speed set to 0

 

Key Release Event for <Up> Key:

start moving in directions 000010000 with speed set to 0

 

Key Release Event for <Right> Key:

start moving in directions 000010000 with speed set to 0

 

Key Release Event for <Down> Key:

start moving in directions 000010000 with speed set to 0

Odnośnik do komentarza
Udostępnij na innych stronach

Object0 to obiekt którym się poruszam, reszta to ściany.

 

Information about object: object0

 

Sprite: sprite1

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent: <no parent>

Mask: <same as sprite>

 

Create Event:

execute code:

 

global.pkt=0;

 

Collision Event with object object4:

jump to the start position

 

Collision Event with object object5:

jump to the start position

 

Collision Event with object object6:

jump to the start position

 

Collision Event with object object8:

jump to the start position

 

Collision Event with object object10:

execute script script2 with arguments (0,0,0,0,0)

 

Collision Event with object object13:

execute code:

 

global.pkt+=1

with(other) instance_destroy()

 

Key Press Event for <Left> Key:

start moving in directions 000100000 with speed set to 4

execute code:

 

image_xscale = 1;

 

Key Press Event for <Up> Key:

start moving in directions 000000010 with speed set to 4

 

Key Press Event for <Right> Key:

start moving in directions 000001000 with speed set to 4

execute code:

 

image_xscale = -1;

 

 

Key Press Event for <Down> Key:

start moving in directions 010000000 with speed set to 4

 

Key Release Event for <Left> Key:

start moving in directions 000010000 with speed set to 0

 

Key Release Event for <Up> Key:

start moving in directions 000010000 with speed set to 0

 

Key Release Event for <Right> Key:

start moving in directions 000010000 with speed set to 0

 

Key Release Event for <Down> Key:

start moving in directions 000010000 with speed set to 0

 

 

Script2 to: room_goto_next()

Odnośnik do komentarza
Udostępnij na innych stronach

Zrób dwa sprite. Jeden w lewo drugi w prawo.

W evencie klawisza w lewo zrób tak:

GML
sprite_index=spr_bohater_l; //zmienia sprite

yy=0; //zmienna pomocnicza - sprawdza jak wysoki jest schodem przed graczem

ok=0; //zmienna pomocnicza - kończy działanie pętli w odpowiedniej chwili

while(yy<=max_y&&ok=0)

{

if(place_free(x-v,y-yy)) //jeśli nic nie ma przed graczem...

{

x-=v; //...gracz może iść

if(!place_free(x,y+1)&&vspeed=0) //tylko jeżeli gracz stoi (nie skacze)...

y-=yy; //może wejść na schodek

ok=1; //kończy działanie pętli

}

yy+=1;

}

 

if(!place_free(x,y+max_y)&&vspeed=0) //dzięki tym instrukcjom gracz gładziutko schodzi z górki zamiast tak "skokowo"

move_contact_solid(270,max_y);

kier=0;

W evencie klawisza w prawo:

GML
//wyjaśnienie poszczególnych instrukcji w evencie <LEFT>

sprite_index=spr_bohater_r; //zmienia sprite

yy=0;

ok=0;

while(yy<=max_y&&ok=0)

{

if(place_free(x+v,y-yy))

{

x+=v;

if(!place_free(x,y+1)&&vspeed=0)

y-=yy;

ok=1;

}

yy+=1;

}

 

if(!place_free(x,y+max_y)&&vspeed=0)

move_contact_solid(270,max_y);

kier=1;

W evencie klawisza w górę:

GML
if(!place_free(x,y+1)) //Jeśli gracz na czymś stoi...

vspeed=-15; //...może podskoczyć;)</span>

I w evencie step:

GML
if(place_free(x,y+1)) //jeśli gracz nic nie ma pod nogami...

vspeed+=1; //...zaczyna opadać</span>

Dzięki temu będzie się dało chodzić na boki z odbiciem gracza i... Skakać, oraz spadać dzięki grawitacji, tylko jeszcze skrypty dla drogi:

W obiekcie kontrolera drogi (bez sprite, ale musisz go dawać do roomów):

W evencie zderzenia z bohaterem:

GML
with(o_bohater) //wszystko w klamrach dotyczy wskazanego obiektu

{

if (vspeed>0&&!place_free(x,y+vspeed)) //jeśli gracz spada i ma coś tuż pod nogami

move_contact_solid(270,vspeed); //zostaje na tym "postawiony"

vspeed=0; //i przestaje opadać;)

}

Tylko jeszcze w obiekcie, drogi po której się idzie dajesz jako parent ten kontroler, o którym powiedziałem.

Ogólnie wszystko masz tutaj:

Kliknij ;)

Dzięki tej stronce zapoczątkowałem moją grę, więc myślę, że ci się przyda. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Aby to zrobić musisz ustawić origin postaci na środek, inaczej będzie dziwnie skakać.

Użyj klocka ustawiania zmiennej(bo zakladam ze korzystasz z klockow) - to ten kwadrat z napisem "VAR"

Dla chodzenia w lewo:

w variable podaj image_xscale

w value podaj -1

 

Dla chodzenia w prawo:

w variable podaj image_xscale

w value podaj 1

 

@offtop @up Błagam, ogarnij te sygnature bo oczy mi lekko krwawią.

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