Skocz do zawartości

Zatrzymanie i dialog


Rekomendowane odpowiedzi

Witam wszystkich, gdyż to mój pierwszy post na tym forum.

Chciałbym, by w danym momencie unieruchomić gracza, tak by nie mógł się ruszyć w żadnym kierunku. Oprócz tego chciałbym by w danym momencie w danym miejscu pojawił mi się sprite. Jak to zrobić? speed = 0 tylko zatrzymuje gracza, ale może się dalej poruszać, a po zastosowaniu draw_sprite nic się nie pojawia.. Proszę o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Stwórz mu dodatkową zmienną, na przykład pausa. Gdy gracz ma się nie ruszać, to pausa=1, w przeciwnym wypadku pausa=false. Dopisujesz we wszystkich eventach odpowiedzialnych za ruch:

GML
if(!pausa)

{

 

// reszta kodu

}

A żeby wyświetlało Ci jakiś sprite. Wystarczy, że stworzysz nowy obiekt (z tym ustawionym spritem) i nadasz mu odpowiednie x i y.

Odnośnik do komentarza
Udostępnij na innych stronach

No więc tak, wszystkie funkcje zaczynające się na: "draw" można użyć jedynie w evencie:"draw". Podaj jaki kod masz na poruszanie, to przerobi się go i będzie można blokować.

 

Niestety, poruszanie mam na klockach - z game makerem bawię się dopiero kilka dni. Ale spróbuję napisać kod na poruszanie ;)

Odnośnik do komentarza
Udostępnij na innych stronach

@UP Wielkie dzięki, przydał się ;)

No więc tak, wszystkie funkcje zaczynające się na: "draw" można użyć jedynie w evencie:"draw". Podaj jaki kod masz na poruszanie, to przerobi się go i będzie można blokować.

 

Mam już kod:

 

if (keyboard_check(vk_left))
action_move("000100000", 3);
else
if (keyboard_check(vk_right))
action_move("000001000", 3);
else
if (keyboard_check(vk_up) )
action_move("000000010", 3);
else
if (keyboard_check(vk_down) )
action_move("010000000", 3);
if (keyboard_check(vk_down))
action_move("000000001", 3);
else
speed=0;

 

Chciałbym jeszcze by móc chodzić na ukos, wciskając 2 klawisze strzałek - z tym mi już nie bardzo wychodzi.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if global.pauza=0

{

if keyboard_check(vk_left)

{

x-=5

}

if keyboard_check(vk_right)

{

x+=5

}

if keyboard_check(vk_up)

{

y-=5

}

if keyboard_check(vk_down)

{

y+=5

}

}

i jak będzie miała być pauza to dajesz:

GML
global.pauza=1

, a jak ma się skończyć:

GML
global.pauza=0
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ę...