Skocz do zawartości

Pare pytań


Rekomendowane odpowiedzi

Witajcie!

 

Zdecydowałem się powrócić do Game Makera, odzyskałem swoje konto no i zabrałem się do pracy nad w sumie pierwszą moją grą gdyż do dzisiaj żadnej nie skończyłem :P

 

Mam kilka pytań otóż mam już trochę zrobione, mapy, bohatera, przeciwników i wiele wiele więcej, ale nadal są pytania na które nie znam odpowiedzi.

 

1. Najważniejsze pytanie otóż mam obiekt, który przy kolizji z graczem teleportuje nas do danego poziomu (room_goto(room1)). Jak zrobić żeby wszystkie zebrane przedmioty, mój stan życia i staminy nie ulegał resetowi ? Oczywiście cała mapa może a nawet powinna się resetować aby potwory,drzewa itp odradzały się.

 

 

2.Jak jesteśmy już przy teleportach jak zrobić aby postać pojawiała się w danym miejscu a kiedy wracamy pojawiała się we wcześniejszym a nie w startowym ?

 

3.Mam przeciwników, którzy mają hp=100 i przy kolizji z obj_dzida maja hp=-40 jednak i tak padają po 1 uderzeniu, jak to zmienić? Próbowałem już -= i =- ... :/

 

Jeżeli przypomnę sobie jeszcze o jakimś pytaniu bo miałem kilka to napiszę tutaj :)

 

Dziękuje z góry i pozdrawiam !!!

Odnośnik do komentarza
Udostępnij na innych stronach

1)Jest wiele sposobów. Najłatwiejszym będzie użycie zwykych globalnych. One się usuwają dopiero po wyłączeniu gry :)

2)Tutaj już musisz zapisywać pozycję. Gdy teleportujesz gracza na daną planszę, to musisz wtedy wyznaczać własnoręcznie w jakiej pozycji ma się pojawić.

3)Po kolizji nie niszczysz obiketu, ani nic, przez co cały czas ona się wykonuje. Albo niszcz dzidę przy kolizji z wrogiem od razu, albo dla wroga dorób zmienną, sprawdzającą czy oberwał.

Odnośnik do komentarza
Udostępnij na innych stronach

1. Obiekty, które mają nie znikać po przejściu do kolejnego rooma, powinny mieć zaznaczoną opcję "permament". Wszystkie pozostałe obiekty ulegną zniszczeniu/usunięciu.

2. Zapisuj w zmiennej globalnej ten room, z którego przechodzisz do następnego. Potem, w zależności od tego, jaki jest ten zapisany room, ustawiaj pozycję postaci. Możesz to zrobić if-ami, inne sposoby są może lepsze, ale dłuższe do zapisania.

3. Niech x=100, y=40

x=-y spowoduje, że x=-40

x-=y spowoduje, że x=60

Problem u ciebie polega na tym, że kolizja obiektu z dzidą trwa dłużej niż 1 step, więc kod w kolizji (czyli hp-=40) wykonuje się w wiele razy. HP spada do zera w bardzo krótkim czasie.

Aby to naprawić, musisz skorzystać ze zmiennej pomocniczej i timera. W Create obj_dzida:

GML
can_hit=1 //tworzy zmienna pomocnicza</span>

W kolizji wroga z obj_dzida dodaj na początku:

GML
if(other.can_hit !=1) exit //dzida nie zada obrazen, jezeli niedawno zadawala obrazenia</span>

a na końcu:

GML
other.can_hit=0 //zablokuj zadawanie obrazen dzidy

other.alarm[0]=30 //ustaw timer dzidy</span>

W Alarm 0 obiektu obj_dzida:

GML
can_hit=1 //gdy timer dojdzie do 0, dzida moze znowu zadac obrazenia</span>
Odnośnik do komentarza
Udostępnij na innych stronach

Dobra wroga już ogarnąłem teraz odejmuje każdemu wrogowi odpowiednią ilość życia.

 

Co do pkt 1 Amateratsu to nie mogę dać ,,Persitent"(a nie permament ;p) bo mam ekwipunek w obj_GUI czyli po wciśnięciu klawisz I wyświetla mi np. Wood:4

Jeżeli zrobie to przy wood i zniszcze drzewo skąd to wypada to zostaje na mapie. Chodzi o to aby zmienne się nie resetowały.

 

Co do pkt 2 rozumiem , że to wystarczy robić x i y ?

 

Dzięki wam za odpowiedzi :)

Odnośnik do komentarza
Udostępnij na innych stronach

Zniszczenie obiektu pociąga za sobą usunięcie zmiennych i tablic w obiekcie. Zniszczeniem obiektu jest użycie instance_destroy() lub przejście do innego rooma, jeżeli obiekt nie ma zaznaczonego "persistent". Co powinieneś zrobić, to dać "persistent" ekwipunkowi, a drzewu - nie. Wtedy drzewo nie zostanie na mapie, a ekwipunek zostanie.

 

Chyba że to jakoś inaczej wygląda, nie jestem pewien, może powinieneś trochę doprecyzować

Odnośnik do komentarza
Udostępnij na innych stronach

Odpowiadając na Twoje pytania, to:

Jest sporo różnych sposobów na to, żeby zebrane przedmioty itd. nie ulegały resetowi. Na pewno do tego dojdziesz sam w trakcje gry, więc spokojnie.

Jak jesteś przy teleportach, to wcześniej przed kliknięciem teleport musisz zapisać obecną pozycję i ustalić, gdzie ma się pojawić po teleportacji.

Na trzecie pytanie nie umiem Ci odpowiedzieć, bo jeszcze tego nie miałem okazji zmieniać.

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