Skocz do zawartości

Zbijanie w kupę.


Rekomendowane odpowiedzi

Mam taki problem. Jest sobie grupka żołnierzy. Jeden Bohater i ok. 5 kolegów. Każdy am się obracać w kierunku kursora myszki. To jest. Teraz jeszcze wszyscy mają taki kod na poruszanie:

 

GML
if ( keyboard_check( vk_up )) speed = 5

else if keyboard_check( vk_down )

{speed=-5}

else

speed = 0

 

Problem w tym że ten kod jest tak jakby. 'Na prowadzenie samotnej gry' Bo gdy taka grupka żołnierzy się porusza, zbijają się w kupę, jeden na drugim. Wymyślilibyście jakiś taki sposób na poruszanie ale żeby zachowywali odstęp od siebie? Byłbym wdzięczny :)

Odnośnik do komentarza
Udostępnij na innych stronach

mp_potential_step jest funkcja. Przykladowo:

GML
mp_potential_step(mouse_x,mouse_y,5,true)

argument0 - pozycja X celu;

argument1 - pozycja Y celu;

argument2 - predkosc, z jaka obiekt ma sie poruszac do celu;

argument3 - czy ma probowac omijac wszystkie przeszkody (true), czy tylko solid (false).

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety, mam taki kod i nadal zachodzą..

GML
direction = point_direction(x,y,mouse_x,mouse_y)

image_angle = direction

 

if ( keyboard_check( vk_up )) speed = 5

else if keyboard_check( vk_down )

{mp_potential_step(mouse_x,mouse_y,5,true)}

else

speed = 0

Odnośnik do komentarza
Udostępnij na innych stronach

Tak myslalem :/ Mialem nadzieje, ze chociaz u Ciebie zadziala :/

Zatem trzeba wymyslic nowy kod.

Trzeba sprawdzac, czy przed kolesiem nie ma innego kolesia, a jesli jest, to zmienic kierunek.

Pomocne moga okazac sie lengthdiry :)

Odnośnik do komentarza
Udostępnij na innych stronach

Create:

GML
t = 0

Step:

GML
direction = point_direction(x,y,mouse_x,mouse_y)+t

image_angle = direction

 

if ( keyboard_check( vk_up ))

speed = 5

else if keyboard_check( vk_down )

speed = -5

else speed = 0

 

if(instance_position(x+lengthdir_x(speed*5,direction),y+lengthdir_y(speed*5,direction),Obj_Kolega) t += 5

else t = 0

Kod niezbyt ladny, ale na razie nic lepszego nie wymysle. I nie jestem pewien, czy zadziala.

Czy obj_Kolega ma ustawiona maske?

Odnośnik do komentarza
Udostępnij na innych stronach

A moze:

GML (CREATE)
t=0

GML (Step czy tam mysza xD)
direction = point_direction(x,y,mouse_x,mouse_y)

image_angle = direction

 

mp_potential_step(mouse_x,mouse_y,s,true)

 

if ( keyboard_check( vk_up )) s = 5

else if keyboard_check( vk_down ) s = -5

else

s = 0

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
A moze:

GML (CREATE)
t=0

GML (Step czy tam mysza xD)
direction = point_direction(x,y,mouse_x,mouse_y)

image_angle = direction

 

mp_potential_step(mouse_x,mouse_y,s,true)

 

if ( keyboard_check( vk_up )) s = 5

else if keyboard_check( vk_down ) s = -5

else

s = 0

 

i po co ci t w create?

Odnośnik do komentarza
Udostępnij na innych stronach

Tak myslalem :/ Mialem nadzieje, ze chociaz u Ciebie zadziala :/

Zatem trzeba wymyslic nowy kod.

Trzeba sprawdzac, czy przed kolesiem nie ma innego kolesia, a jesli jest, to zmienic kierunek.

Pomocne moga okazac sie lengthdiry :)

Muczek, spróbuj tamtego kodu używając mp_potential_step_object, bo samo potential_step omija jedynie solidy, a kumple pewnie solidni nie są :P

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
A może tak: Gdy wciskam klawisz 'góra' tylko bohater idzie za kursorem a cała reszta po prostu utrzymuje się koło niego? Np. dać że pozycja towarzysza to jakiś punkt niedaleko bohatera?

No to zrób tak i zobacz, czy działa

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