Caporegime Opublikowano 5 Stycznia 2014 Udostępnij Opublikowano 5 Stycznia 2014 Dzień dobry mógłby ktoś pomóc? Chciałbym w strategicznej top-downowej grze dać możliwość zbierania jednostek w szyk, chociażby w prostokąt. Załóżmy że zwykły ludek ma 4x4 piksele, i jak zrobić żeby się tak ładnie organizowali w prostokąt bez żadnych przerw między żołnierzykami? I przycisk w stylu "rozwiąż szyk" który sprawi że się rozdzielą tak żeby każdy stał przynajmniej 2 piksele od innego. Aha, no i dobrze by było żeby przy tworzeniu szyku ludki automatycznie dobierali wielkość prostokąta do tego ilu ich jest, żeby na przykład przy 15 ludziach tworzyli prostokąt 5x3. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 6 Stycznia 2014 Udostępnij Opublikowano 6 Stycznia 2014 Bez urazy ale ten dział jest do pomocy z problemami, a nie wykonywaniem kodu. Możemy podpowiedzieć jak to zrobić, ale wykonanie gotowego kodu mijałoby się z celem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 6 Stycznia 2014 Udostępnij Opublikowano 6 Stycznia 2014 calkiem prosty sposob(trza go dostosowac do twych potrzeb i napisac kod :) ) : 0, vybor jednostek 1, polecam przechowywac id vybranych jednostek v datowych strukturach jako so ds_ (viz help) 2, ilosc_linii_v_oddzialu = sqrt(_suma_vybranych_jedn) viz. help 3, licbza_zlonierzy_v_linii = ceil(suma_vybranych_zolnierzy/ilosc_linii_v_oddzialu) viz..help 4, wykonaj for dla ilosc_linii_v_oddzialu i v nim for dla licbza_zolnierzy_v_linii i kazdej jednostce zapisz jej miejsce v oddzialu (linia, mijsce v linii) 5, niezapomnij, dla 4, jest wazne by testowac exystencjezolnierzy bo niezawsze vybierzesz oddzial o pelnych linijach :) 6, jak na umiescienie jednostki na pozicje v oddziale 7, definuj punkt/instancji vodza, ktory trzyma pozycje calego odzialu i wszystci zolnierze trzymajo swo relatywno pozycje dla tego punktu/instancji 8, vylic relatiwno pozycje(offset) kazdego zolnierzy i zapisz go do zolnierza, tu mozesz aplikowac dowolno przerwe jak v miedzy linijami tak i miezdi z 9, kazdy zolnierz od teraz ma zmienac swe x,y na instnancja_vodza.x+jednostka.x_offset etc. napisalem z glowy, ale chyba nic waznego nieopominolem :) obroty oddzialu so jak od 6, tylko v 8, liczysz pozicje uwzglendniajoc direction instancja_vodza i uzywajoc sin/cos moze niejest to co chcesz takie proste, jak sobie wyobrazales, ale nic bez pracy niema wartosci. :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lechu4444 Opublikowano 6 Stycznia 2014 Udostępnij Opublikowano 6 Stycznia 2014 Gdzieś był fajny przykład jeszcze jakiś rok temu dawałem do niego linka ale teraz jakoś znaleźć nie mogę z tego co pamiętam to chyba jego autorem był programista, ale jego uploadera też nie mogę znaleźć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 6 Stycznia 2014 Udostępnij Opublikowano 6 Stycznia 2014 Mozesz wybrac jedna z instancji w szyku jako prowadzacego, stojacego z przodu, kazdej kolejnej instacji nadawac numer w szyku (0,1,2,3,4....) oraz podawac id prowadzacego. Wtedy pozycja danej jednostki to bedzie GML x = wodz.x - (dlugosci_linii/2*sprite_width) + (sprite_width*(numer mod dlugosc_linii)); y = wodz.y + sprite_height + ( numer div dlugosc_linii ); Ereg podał jak wyliczyć długość lini. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Caporegime Opublikowano 6 Stycznia 2014 Autor Udostępnij Opublikowano 6 Stycznia 2014 Brzmi skomplikowanie i pewnie trochę zajmie zanim to ogarnę, ale dzięki wszystkim za pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę