Ignatus Opublikowano 8 Lutego 2015 Udostępnij Opublikowano 8 Lutego 2015 GM:S Trafił mi się bardzo nietypowy problem którego nie potrafię zrozumieć.Zrobiłem bardzo prosty silnik RTS- wszystko działa powiedzmy tak jak powinno- w tym element kluczowy w moim pytaniu- tworzenie nowych jednostek.Klikamy LPM na bazę, pojawiają się 2 ikony jednostek (worker,fighter) i jeżeli mamy wystarczającą ilość $ to dana jednostka się tworzy.Problem pojawił się gdy skopiowałem projekt żeby pójść w innym kierunku,eksperymentować ale nie stracic bazy.Zmieniłem w zasadzie tylko sprite i jakies drobiazgi i wydarzyła się bardzo dziwna rzecz.Po kliknieciu na ikonę jednostki- zawsze tworzy się taka sama, niezależnie na to co kliknę (załóżmy że klikam na fightera a i tak tworzy się worker).Kombinowałem długo, kod nie zmienił się w stosunku do oryginału (zresztą tego elementu nie ruszałem w ogóle) i odkryłem coś dziwacznego- to która jednostka będzie się tworzyła niezależnie od wybranej zależy od ...pozycji w menu roboczym GM(nie wiem jak to nazwać;p) Mam 3 istotne w tej sprawie obiekty ułożone w menu w takiej kolejności obj_fighter_button obj_worker_button obj_ship_creation_button_parent Niezależnie od tego czy zmienie cokolwiek w GML zawsze po naciśnięciu każdego "buttona" będzie utworzony tylko worker obj_worker_button obj_fighter_button obj_ship_creation_button_parent Jeżeli zmienię kolejność na taką zawsze będzie się tworzył tylko fighter (bez żadnych innych zmian, tylko przesuwam obj w menu-nic nie ruszam w kodzie) Miał ktoś kiedyś coś podobnego?Bo jak dla mnie magia.Nie słyszałem nigdy o tym żeby ułożenie w menu miało jakikolwiek wpływ na grę... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 8 Lutego 2015 Udostępnij Opublikowano 8 Lutego 2015 W GM:S ułożenie w menu odpowiada za id zasobu. W poprzednich GM id było wg kolejności w jakiej zasoby były dodawane. To niesamowicie ułatwia sporo spraw. Jeżeli nie wiesz o co chodzi to tłumaczę: Zmienna object_index zawiera id zasobu dla obiektów. Każdy obiekt będzie mieć różny. Natomiast id zawiera id dla konkretnych instance. Nazwa twoich obiektów działa tak samo. To 'zmienna' która przechowuje id zasobu. Znając to id (a znamy jego pozycję w drzewku) możemy go używać. Bardzo dobrym przykładem będzie to: GML audio_play_sound(choose(so_shot_1,so_shot_2,so_shot_3,so_shot_4,so_shot_5,so_shot_6), 1, 0)Można zastąpić tym:GML audio_play_sound(so_shot_1+irandom(5), 1, 0)Bo o ile te zasoby są po kolei to GM sprawdzi sobie id pierwszego a potem wylosuje któryś z kolejnych. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 8 Lutego 2015 Autor Udostępnij Opublikowano 8 Lutego 2015 Dzięki, myślę że wiem o co chodzi.Ale jak w takim razie rozwiązać ten problem? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 8 Lutego 2015 Udostępnij Opublikowano 8 Lutego 2015 Otwórz oryginalny projekt i sprawdź? Może przez zmianę grafik zmieniłeś maski? Albo usunąłeś ważny obiekt? My tego nie wiemy. 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ę