Skocz do zawartości

Bot/NPC do gry


Opisek

Rekomendowane odpowiedzi

Witam!

Zastanawiam się jak zrobić w pewnym rodzaju bota/npc'ta do gry.

Stworzyłem takie coś:

 

Objekt o nazwie ufo.

Jego ewenty:

Step - W środku jest: z zakładki move move towards - w środku jest: x= 288, y= 304, speed= 3

Begin Step - W środku jest: z zakładki move move towards - w śroku jest: x= 91, y= 114, speed= 3

 

Objekt ufo po postawieniu na planszy leci na pierwsze kordy (288,304) i na nich się zacina i nie chce dalej lecieć.

Czy ktoś może mi pomóc zrobić tak, aby ufo latało z jednych kordów do drugich przez cały czas puki gracz nie wejdzie do następnej planszy?

Odnośnik do komentarza
Udostępnij na innych stronach

Twórz w create zmienną

kierunek = 1;

 

Ona będzie Ci określała w którą stronę ma teraz iść. Zamiast 2 eventów step, wybierz jeden( chyba źle zrozumiałeś ich działanie, poczytaj jeszcze raz ).

Teraz przy pomocy zmiennej kierunek będziemy sobie chodzić:

if( kierunek == 1 ) {// Idzie pierw w tą stronę
   if( x == 288 && y == 304 ) {// Kiedy już dotrze
      kierunek = 2;// Będzie leciał w 2 strone
   }
   else {// Jeśli jeszcze nie dotarł
      //Twój kod na bieg w tą stronę, na pozycje 288, 304
   }
}
else if( kierunek == 2 ) {// Idzie teraz w 2 strone
   if( x ... ) {// to samo co wczesniej tylko z innymi wartosciami
      kierunek = 1;
   }
   else {... }// Bieg na 2ga pozycje;)
}

Odnośnik do komentarza
Udostępnij na innych stronach

Nie za bardzo cię zrozumiałem :blink: :huh:

Możesz mi potłumaczyć w sposób bardzo prosty? (Masz utworzyć to w evencie tym i w tym co stworzyłeś masz napisać to: gbyftgfdsfgdgydgggygdgthgd potem tworzysz to w tym evencie i piszesz to

itp. itd... ) ok?

Pracuję z programem 2-3 dni nie za bardzo umiem się nim posługiwać :crying:

Odnośnik do komentarza
Udostępnij na innych stronach

bo move_towards skacze co 3 px. walnij zamiast x==288 && y==304 if(distance_point(tutaj argumenty)<3) czy coś takiego

sprawdź w dokumentacji.

E. teraz tak spojrzałem i nie to <3 nie jest serce tylko oznacza że odległość do punktu ma być mniejsza niż 3.

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety nie zrozumiałem, lecz spróbuję, jeśli mi się nie uda napiszę to.

 

Ok rozumiem, ale nie umiem tego znaleźć.

 

Ok co do postu Ninja chyba zacząłem rozumieć tylko nie rozumiem nadal o co chodzi z tą zmienną kierunek?

 

Triplepost. Ostrzeżenie - Uzjel

Odnośnik do komentarza
Udostępnij na innych stronach

chyba bedzie to tylko ciekavostka, ale co :)

mozna i tak

GML
//EVENT create

_left_x_border=100;

_right_x_border=500;

_speed=3;

GML
//EVENT STEP

_speed*=sign(.1 + (_speed*(x<_left_x_border)) - _speed*(x>_right_x_border) );

x+=_speed;

robi mniej-wiecej co napisal Ninja i jego kiearunek jest u mnie + lub - v _speed

.1 jest tylko poto by _speed nieopadl do zera

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety nie zrozumiałem, lecz spróbuję, jeśli mi się nie uda napiszę to.

 

Ok rozumiem, ale nie umiem tego znaleźć.

 

Ok co do postu Ninja chyba zacząłem rozumieć tylko nie rozumiem nadal o co chodzi z tą zmienną kierunek?

 

Triplepost. Ostrzeżenie - Uzjel

 

Kierunek to zmienna pomocnicza, którą sobie utworzyłeś :) Jeśli by jej nie było to nie wiedziałbyś czy nasz bot doszedł już do tego pierwszego punktu i chce iść do 2giego ;) Jeśli kierunek jest równy 1, to wiemy, że bot chce iść do pierwszej pozycji. Kiedy już dojdzie to zmieniamy cel na pozycje 2gą... tylko skąd program ma o tym wiedzieć? Do tego właśnie nam zmienna kierunek ;) Kiedy już się dowlecze, zmieniamy zmienną kierunek na wartość 2 i nasz ziomeczek wie, że na 1 pozycji już był, nie ma tam nic do roboty i buja się na drugą. Jeśli kierunek==2 i już się tam dowlecze to znów nie ma co robić i myśli co by tu dalej.. Nie chcemy innych pozycji( kierunek=3, 4 itp... ) to zmieniamy wtedy kierunek na wartość 1( kierunek = 1 ) i znów się buja na pierwszą pozycję :>

 

Nie umiem tego lepisiej, prościej opisać.. Rozumiesz? :D

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