Threef Opublikowano 24 Października 2015 Udostępnij Opublikowano 24 Października 2015 Niech zgadnę. hud_item1 to obiekt? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 24 Października 2015 Udostępnij Opublikowano 24 Października 2015 Od kiedy GM nie sprawdza duplikatów nazw w zasobach? Edit: A jeżeli użył nazwy zasobu jak zmiennej, to jest w ogóle dozwolone? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Wojzax Opublikowano 24 Października 2015 Filar Społeczności Udostępnij Opublikowano 24 Października 2015 Kolejne ważne pytanie: Jak stworzyć w tym samym miejscu n obiektów, gdzie n jest zmienną? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 25 Października 2015 Udostępnij Opublikowano 25 Października 2015 Kolejne ważne pytanie: Jak stworzyć w tym samym miejscu n obiektów, gdzie n jest zmienną? GML repeat(n) { instance_create(x, y, obiekt); }; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 25 Października 2015 Udostępnij Opublikowano 25 Października 2015 Edit: A jeżeli użył nazwy zasobu jak zmiennej, to jest w ogóle dozwolone?Nazwy zasobów są stałymi kompilowanymi od nowa przy każdym uruchomieniu gry. Wskazują na ID zasobu w kategorii. Sprite na samej górze drzewka sprite będzie miało wartość 0, następny 1, etc. Ale każdy pierwszy obiekt, sound, timeline, room i nie wiem co jeszcze będzie miało ID 0. Przez to będzie dochodzić do błędów gdy sprite i obiekt mają tę samą nazwę. Nie wiem czemu GM nie zgłasza tego jako błąd kompilacji. Wydaje mi się wcześniej to robił. No, ale jest opcja w menu która pokarze wszystkie duplikaty nazw. No i kolejny raz, bo to fajny feature, przypomnę że są tego plusy. Jeżeli mamy 10 przeciwników (oEnemy1, oEnemy2, oEnemy3...) to nie musimy ich losować, a możemy zrobić oEnemy1+irandom(10). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 25 Października 2015 Udostępnij Opublikowano 25 Października 2015 Nazwy zasobów są stałymi kompilowanymi od nowa przy każdym uruchomieniu gry. Wskazują na ID zasobu w kategorii. Sprite na samej górze drzewka sprite będzie miało wartość 0, następny 1, etc. Ale każdy pierwszy obiekt, sound, timeline, room i nie wiem co jeszcze będzie miało ID 0. Przez to będzie dochodzić do błędów gdy sprite i obiekt mają tę samą nazwę. jest opcja w menu która pokarze wszystkie duplikaty nazw. No i kolejny raz, bo to fajny feature, przypomnę że są tego plusy. Jeżeli mamy 10 przeciwników (oEnemy1, oEnemy2, oEnemy3...) to nie musimy ich losować, a możemy zrobić oEnemy1+irandom(10). Wiem. Nie wiem czemu GM nie zgłasza tego jako błąd kompilacji. Wydaje mi się wcześniej to robił. O to pytałem a nie odpowiedziałeś. TL;DR Odpowiedziałeś na wszystko na co nie miałeś odpowiadać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XBlacKX Opublikowano 28 Października 2015 Udostępnij Opublikowano 28 Października 2015 kopiuję z shoutboxa, proszę o pomoc odwdzięczę się piwem ;) Da się jakos zrobić aby jakiś obiekt tworzył inne obiekty, i gdy liczba tych obiektów będzie wyzsza niz np 10 to usunie je wszystkie oprócz ostatniego stworzonego? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 28 Października 2015 Udostępnij Opublikowano 28 Października 2015 Jest na to wiele sposobów, jednym z prostszych(wg mnie Threef) jest zapisywanie jest stworzenie listy i tam gromadzenie tych wszystkich obiektów. Najpierw tworzysz gdzieś tę listę za pomocą: GML global.lista=ds_list_create(); Potem za każdym razem jak tworzysz ten obiekt dodajesz w create coś takiego: GML ds_list_add(global.lista) I gdzieś sobie sprawdzasz, czy lista jest większa od np 10 i usuwasz: GML if ds_list_size(global.lista)>10 { repeat(10) { with(ds_list_find_value(global.lista,0){instance_destroy();} ds_list_delete(global.lista,0) } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XBlacKX Opublikowano 28 Października 2015 Udostępnij Opublikowano 28 Października 2015 Data structure with index does not exist. przy ds_list_add(global.lista) obojętnie gdzie dam zawsze ten error zrobiłem sobie przerwe od gm na pare lat więc mógłbyś mi wytłumaczyć jak kompletnemu zielonemu co gdzie dać? :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 28 Października 2015 Udostępnij Opublikowano 28 Października 2015 Nie możesz się odwołać do tej listy, bo jej nie stworzyłeś. Najpierw musisz napisać GML global.lista=ds_list_create Ale to tylko raz,np w poprzednim roomie, czy też w obiekcie o_system w room_start, a ds_list_add przy każdym nowym obikecie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 29 Października 2015 Udostępnij Opublikowano 29 Października 2015 Jak sprawdzić jakie texture page mam akutalnie załadowane do pamięci? W manualu jest opis funckcji z debugera "Surface/Textures" "Surfaces/Textures This watch enables you to see exactly what is being drawn to any surfaces you have in your game (including the application surface) as well as see the texture pages that are in memory. You can select from textures or surfaces from the top of the watch, and then select the texture or surface ID to have it displayed in the window. " Ale w praktyce mogę sobie ewentualnie po zapauzowaniu sprawdzić jakie w ogóle są w grze wszystkie stworzone texture page co jest wiedzą skrajnie zbędną (na liście są po prostu wszystkie-aktualnie mam 6,ale zawsze powinna być używana tylko 1-tak to zaplanowałem,chce zobaczyć czy to działa), - jak sprawdzić która aktualnie jest używana?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Wojzax Opublikowano 30 Października 2015 Filar Społeczności Udostępnij Opublikowano 30 Października 2015 Jeśli mam n takich samych obiektów, to jak odwołać się do jednego z nich wybranego losowo? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 31 Października 2015 Udostępnij Opublikowano 31 Października 2015 Możesz zwyczajnie pozapisywać gdzieś id instancji(np. do tablicy) i z tego losować. Przykład: GML var _instants, _i=0; repeat(n) { _instants[_i]=instance_create(x, y, obiekt); _i++; }; with(_instants[irandom(n)]) { //akcja }; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 31 Października 2015 Udostępnij Opublikowano 31 Października 2015 GML //losowy obiekt l_ob = instance_find(nazwa_obiektu,irandom(instance_number(nazwa_obiektu)-1)) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 31 Października 2015 Udostępnij Opublikowano 31 Października 2015 GML //losowy obiekt l_ob = instance_find(nazwa_obiektu,irandom(instance_number(nazwa_obiektu)-1)) Tyle, że wojzax chciał wylosować jeden z tych które właśnie utworzył ;) Pewnie można by też wykorzystać, że jak stworzymy kilka instancji pod rząd to powinny mieć kolejne numery ID, ale pewien nie jestem, czy to tak działa. Jak chcesz czegoś optymalnego to pobaw się tym może :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 31 Października 2015 Udostępnij Opublikowano 31 Października 2015 MaxGaming, gdzie napisał, że właśnie utworzonych? Amaterasu, pierwszy raz słyszę o takim sposobie, ciekawe. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 31 Października 2015 Udostępnij Opublikowano 31 Października 2015 @Boad: jest w manualu do GM:S Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 31 Października 2015 Udostępnij Opublikowano 31 Października 2015 A na moje pytanie ktos zna odpowiedź?To wykonalne w ogóle? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Wojzax Opublikowano 31 Października 2015 Filar Społeczności Udostępnij Opublikowano 31 Października 2015 Dokładnie chodziło mi o to co napisał Amaterasu, bo instancje miałem już utworzone, musiałem tylko znajdywać ciągle jedną z nich losową. Działa wyśmienicie :) @EDIT: kolejne pytanie xD Moje ludziki mają sobie losować daną instancję obiektu patrol_stop (jasno zielone kwadraciki). Po wylosowaniu idą w kierunku tej instancji po pathu patrol po gridzie o nazwie grid. Wszystko działa pięknie, jednak gdy wylosowana instancja znajduje się za blokadą danego grida (czerwone kwadraty), postać idzie w jakieś losowe miejsce poza mapą. Co może być tego przyczyną, albo co ważniejsze - jak sprawić by nie można było wylosować instancji poza zasięgiem postaci? (to załatwiłoby problem) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 31 Października 2015 Udostępnij Opublikowano 31 Października 2015 Jak sprawdzić jakie texture page mam akutalnie załadowane do pamięci? GML show_debug_overlay(true)Pokaże ci się widok debugowy pokazujący np FPS. PIerwsza liczba w nawiasie to liczba texture swap, czyli ile razy na step zmieniane są texture pages. To Cię interesuje. Więcej możesz przeczytać w dokumentacji. Moje ludziki mają sobie losować daną instancję obiektu patrol_stop (jasno zielone kwadraciki). Po wylosowaniu idą w kierunku tej instancji po pathu patrol po gridzie o nazwie grid. Wszystko działa pięknie, jednak gdy wylosowana instancja znajduje się za blokadą danego grida (czerwone kwadraty), postać idzie w jakieś losowe miejsce poza mapą. Co może być tego przyczyną, albo co ważniejsze - jak sprawić by nie można było wylosować instancji poza zasięgiem postaci? (to załatwiłoby problem)Funkcja tworząca path, czyli mp_grid_path(), zwraca wartość true/false zależną od tego czy droga jest wytyczona czy nie. path zostaje utworzony nawet jak się nie uda, więc to ty musisz zareagować. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Wojzax Opublikowano 31 Października 2015 Filar Społeczności Udostępnij Opublikowano 31 Października 2015 ja to mam tak: GML if (mp_grid_path(grid, patrol, x, y, current_patrol_target.x, current_patrol_target.y, false)) then { path_start(patrol, 1, 3, 0); } else { } to nie wiem czy to nie jest dobrze czy to jest źle teoretycznie nie powinna postać sie ruszać skoro mp_grid_path jest false, ale jednak wynajduje sobie jakiś punkt poza mapą i tam idzie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 1 Listopada 2015 Udostępnij Opublikowano 1 Listopada 2015 Swietne Threef, jak zawsze rzeczowa pomoc. Rouzmiem że jak mi pokazuje w tej funkcji zawsze i na każdej mapie że mam wartość 2/2 przy texture swap to dobry znak i texture flush spełnia swoją rolę? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 1 Listopada 2015 Udostępnij Opublikowano 1 Listopada 2015 ja to mam tak: GML if (mp_grid_path(grid, patrol, x, y, current_patrol_target.x, current_patrol_target.y, false)) then { path_start(patrol, 1, 3, 0); } else { } to nie wiem czy to nie jest dobrze czy to jest źle teoretycznie nie powinna postać sie ruszać skoro mp_grid_path jest false, ale jednak wynajduje sobie jakiś punkt poza mapą i tam idzie W zasadzie kod powinien zadzialac, wiec problem musi byc gdzies indziej, ale mozesz zastosowac nastepujace kroki(Nie wiem co zaproponowac wiec masz tu garść tipów w razie co): 1. path_clear_points(patrol) przed mp_grid_path 2. Upewnij sie ze mapie nie ma dziur - Brak obiektu blokującego wyjscie poza room to dziura. Upewnij sie ze rogi sa pokryte(moze nie miec znaczenia jak masz diag wylaczone, ale spróbuj) 3. Upewnij sie ze path jest otwarty (Po utworzeniu path path_set_closed(patrol,false);) Szczerze, jakbym mial strzelac zakladalbym, ze pojscie w losowe miejsce to efektu uboczny nie czyszczenia pathu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Wojzax Opublikowano 1 Listopada 2015 Filar Społeczności Udostępnij Opublikowano 1 Listopada 2015 Dziękuję za pomoc, chociaż pierwsze dwa pomysły nie zadziałały, nadal w przypadku zamknietych pathy wrogowie nie uznawali ścian albo uciekali za mapę. Podziałało natomiast, kiedy po else w powyższym kodzie a więc w przypadku gdy path jest zamkniety dałem ponowne losowanie punktu celu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 2 Listopada 2015 Udostępnij Opublikowano 2 Listopada 2015 Jeżeli tylko ustawienie innego celu naprawia Twój problem, musisz gdzieś mieć jakieś kawałek kodu wymuszający start patha bez względu na to czy jakiś został obliczony. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Wojzax Opublikowano 6 Listopada 2015 Filar Społeczności Udostępnij Opublikowano 6 Listopada 2015 mam dziwny problem W create obiektu enemy1_body mam kod GML own_head=instance_create(x,y,enemy1_body_head) own_head.cialo=self.id A w create obiektu enemy1_body_head mam GML image_angle=cialo.image_angle mimo to, widzi błąd w obiekcie enemy1_body_head - mianowicie nie ma takiego obiektu jak cialo :( co zrobić @EDIT: ok, dałem to drugie do stepa i działa, ale dlaczego nie działa w create? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BloodDzioch Opublikowano 9 Listopada 2015 Udostępnij Opublikowano 9 Listopada 2015 Mam dwa teksty (ten sam obiekt, ten sam ewent. Tylko warunki ich rysowania są inne). Da się zrobić żeby drugi tekst (rysowany później) rysował się np. 20pix niżej od pierwszego? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 10 Listopada 2015 Udostępnij Opublikowano 10 Listopada 2015 string_height lub string_height_ext użyj, dzięki temu możesz sprawdzić kiedy się kończy :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XBlacKX Opublikowano 10 Listopada 2015 Udostępnij Opublikowano 10 Listopada 2015 object0 po kolizji na środku sprite z object1 usuwa object1 GML if collision_point(128,122,object0,true,false) {with(object1 instance_destroy()} ten kod nie działa, obiekt swobodnie przelatuje przez to... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 10 Listopada 2015 Udostępnij Opublikowano 10 Listopada 2015 object0 po kolizji na środku sprite z object1 usuwa object1 GML if collision_point(128,122,object0,true,false) {with(object1 instance_destroy()} ten kod nie działa, obiekt swobodnie przelatuje przez to... Źle użyty nawias. Powinno być GML if( collision_point(128, 122, object0, true, false) ) { with(object1) {instance_destroy();} } 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ę