Skocz do zawartości

W ostatecznosci musze pytac :( - przeciwnicy


Rekomendowane odpowiedzi

Witam,

Jako, że zaczynam zabawe z GameMakerem mam pare pytan. Zamierzam zrobić platformówke, więc potrzebni są przeciwnicy, i troche bardziej podrasowani od tych w mario ;) Oprócz chodzenia w prawo i w lewo chciałbym, żeby atakowali. Jak zrobić żeby przeciwnici ruszali sie w lewo i prawo a gdy bohater pojawi się w zasiegu żeby przestał krązyc i pobiegł w strone bohatera,zatrzymał się przy nim i zaczął atakować np co dwie sekundy zabierac bohaterowi po 5hp jak bedzie przy nim. Prosił bym o dokładne rozpisanie, sam probowalem ale mi nie wychodziło ;(. Drugim problemem jest zrobienie wody. Jak zrobić taki polprzezroczysty obiekt w ktorym bohater porusza się wolniej. To niby proste, ale nie wiem jak zrobic ten pol przezroczysty obiekt ;( Dziękuje

Odnośnik do komentarza
Udostępnij na innych stronach

1. Zrób sobie obiekty odpowiedzialne za wroga kierunek czyli lewy i prawy, następnie oznacz im visible, aby były nie widoczne ( visible, klikasz dwa razy w jakiś obiekt i po lewej stronie masz napisy Visible i Solid, kliknij w Visible.)

Później ustawiasz je sobie w roomie na krawędziach, tam gdzie masz tych wrogów.

 

W kolizji z prawym, dajesz kod:

 

GML
hspeed = 7

 

a z lewym:

 

GML
hspeed = -7

 

Jeżeli obiekt zbliży się na pewną odległość, to zaczyna do nie go iść czyli:

 

GML
if distance_to_object(object1) < 200

{

 

move_towards_point(object1.x,y,4)

 

}

 

W kolizji z wrogiem daj kod:

 

GML
if alarm[0] =-1

{ alarm[0]=60 }

 

W alarm[0] :

 

GML
lives-=2

 

2. Daj w create wody kod:

 

GML
image_alpha=0.5
Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Spowolnienie w wodzie

 

CREATE

GML
spowopnienie=false

przy kolizji z wodą:

GML
spowolnienie=true

i w step, tam gdzie masz kod chodzenia

GML
if spowolnienie=false{

speed = 9

}

else

if spowolnienie=true{

speed = 5

}

Lepiej skorzystać z place_meeting zamiast eventu kolizji

Odnośnik do komentarza
Udostępnij na innych stronach

Dziękuje za pomoc :) Jeszcze maly problem: Jak zrobic zeby tego zycia nie zabierało kieby zginie przeciwnik? bo jest cos takiego: podchodzi do mnie i zabiera mi iles tam hp co jakis czas. Kiedy on zginie i juz zamienia sie w inny obiekt to to ten jeszcze raz mi zabiera tego zycia. Jak zrobic zeby po smierci przeciwnika juz nie zabieralo mi jednorazowo tego hp?

Odnośnik do komentarza
Udostępnij na innych stronach

Eee no tak chyba nie zrozumiales. On atakuje dobrze poprawnie. Tylko ze ten maly problem jest ze ten alarm sie wlacza zanim ten przeciwnik zginie, a jak bedzie juz martwy to i tak ten alarm musi sie skonczyc. czyli np zabilem go, sekunda mija a mi jeszcze hp spada jednorazowo, a potem jest juz dobrze. Wiec jak mam zrobic cos takiego ze po zabiciu go ta akcja z alarmem sie anuluje, nawet jak ten alarm juz sie wlaczyl?

Odnośnik do komentarza
Udostępnij na innych stronach

Mu chodziło raczej o klocek 'draw health'.

 

Musisz zamienić te klocki na kod bo nie da zmienić w nich nazwy zmiennej.

Zapewne używałeś klocków 'set health' no więc daj zamiast nich:

GML
global.zycie = tutaj wartosc;

wersja z zaznaczonym relative wygląda tak:

GML
global.zycie += tutaj wartosc;

Zamień także klocek od rysowania 'draw health' na funkcję:

GML
draw_healthbar(x1, y1, x2, y2, global.zycie, kolor1, kolor2, kolor3, kierunek, pokazuj tło, pokazuj ramkę);

x1 x2 y1 y2 to pozycja paska taka sama jak ta z klocków.

kolor1,2,3 - kolory paska, możesz tutaj użyć stałych np. c_blue, c_yellow itp.

kierunek - jak wpiszez 0 to pasek będzie się kurczył w lewo, 2 - w prawo, 3 - w górę, 4 - w dół

pokazuj tło - jak ustawisz na 0 to nie będzie wyświtlany kolor1, 1 - będzie

pokazuj ramkę - to samo dla wyświetlania ramki.

Odnośnik do komentarza
Udostępnij na innych stronach

Albo można to zrobić inaczej:

 

Zrób zmienną życie w create, czyli

 

GML
global.zycie=100

i w step daj:

 

GML
health=global.zycie

 

no i jak Ci odejmuje życie to, musisz odejmować za pomocą tej zmiennej (global. zycie ), czyli:

 

GML
global.zycie-=5

 

dzięki czemu nadal będziesz mógł rysować health na klocku, ale zrób jak chcesz.

Odnośnik do komentarza
Udostępnij na innych stronach

To zależy od tego jak wygląda ten obiekt jeśli jest to pojedyńcze jeziorko to najłatwiej przy kolizji z jeziokiem dać żeby zmieniam sprita na pływa i pobawić się z depth' em. Nie pamiętam jak to z nim było ale chyba im mniejszy tym obiekt jest wyżej ale musisz to sprawdzić

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