SIDek Opublikowano 24 Listopada 2018 Udostępnij Opublikowano 24 Listopada 2018 Chciałbym zrobić taki room przejściowy między levelami. Przechodzisz level 1 -> room przejściowy -> level 2. -> room przejściowy itd.... Room miałby nas wysyłać do konkretnego rooma levela i określać liczbę punktów którą możemy w nim zdobyć (global.punkty) Chciałem zrobić to na zasadzie. If global.level=1 and klikamy enter { goto_room 1 i global.punkty=200} itd. dla 50 leveli Można zapisać to jakoś inaczej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 24 Listopada 2018 Udostępnij Opublikowano 24 Listopada 2018 Tutaj przykładowo może się przydać stworzenie struktury z globalnej tablicy 2D na takiej zasadzie: enum eLevel {enID, enPunkty} globalvar gLevelsDat; gLevelsDat[numerLevelu, eLevel.enID] = room_1; gLevelsDat[numerLevelu, eLevel.enPunkty] = 50; pierwszy index tablicy gLevelsDat to będzie numer levelu czyli w twoim przypadku będzie to twój "global.level" drugi index tej tablicy to będzie odnośnik do tego jaką informację chcesz uzyskać, ja przygotowałem 2 informacje bo tyle na ten moment potrzebujesz (ale będziesz mógł to łatwo rozbudować sobie dopisując więcej rzeczy w tym enumie w 1 linice). Informacja pierwsza to id rooma, a informacja druga to liczba twoich punktów do uzyskania na nim. Najlepiej by było gdybyś stworzył sobie w twoim pierwszym roomie taką strukturę w jakimś obiekcie w create. Dla przykładu wyglądałoby to tak: enum eLevel {enID, enPunkty} globalvar gLevelsDat; var numerLevelu = 0; gLevelsDat[numerLevelu, eLevel.enID] = room_1; gLevelsDat[numerLevelu, eLevel.enPunkty] = 50; numerLevelu++; gLevelsDat[numerLevelu, eLevel.enID] = room_2; gLevelsDat[numerLevelu, eLevel.enPunkty] = 25; numerLevelu++; gLevelsDat[numerLevelu, eLevel.enID] = room_3; gLevelsDat[numerLevelu, eLevel.enPunkty] = 75; numerLevelu++; gLevelsDat[numerLevelu, eLevel.enID] = room_4; gLevelsDat[numerLevelu, eLevel.enPunkty] = 100; numerLevelu++; gLevelsDat[numerLevelu, eLevel.enID] = room_5; gLevelsDat[numerLevelu, eLevel.enPunkty] = 65; numerLevelu++; gLevelsDat[numerLevelu, eLevel.enID] = room_6; gLevelsDat[numerLevelu, eLevel.enPunkty] = 150; // i tak dalej No i gdy taką strukturkę już sobie stworzysz to potem możesz w swoim przejściowym roomie jej użyć w taki sposób: bazując na twojej zasadzie "If global.level=1 and klikamy enter { goto_room 1 i global.punkty=200} itd. dla 50 leveli" if ( keyboard_check_pressed(vk_enter) ) { global.punkty = gLevelsDat[global.level, eLevel.enPunkty]; room_goto(gLevelsDat[global.level, eLevel.enID]); } Takie rozwiązanie może się początkowo tobie wydawać skomplikowane ale to daje fajną elastyczność bo gdybyś np chciał dodatko kiedyś ustawić by każdy level miał np określoną ilość przeciwników do zabicia aby go przejść no to w prosty sposób moją strukturę rozbudujesz: enum eLevel {enID, enPunkty, enKille} globalvar gLevelsDat; gLevelsDat[numerLevelu, eLevel.enID] = room_1; gLevelsDat[numerLevelu, eLevel.enPunkty] = 50; gLevelsDat[numerLevelu, eLevel.enKille] = 8; i potem w roomie przejściowym: if ( keyboard_check_pressed(vk_enter) ) { global.punkty = gLevelsDat[global.level, eLevel.enPunkty]; global.wymaganeKille = gLevelsDat[global.level, eLevel.enKille]; room_goto(gLevelsDat[global.level, eLevel.enID]); } itd. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SIDek Opublikowano 25 Listopada 2018 Autor Udostępnij Opublikowano 25 Listopada 2018 tak mi się coś właśnie kojarzyło, że można użyć tablic do tego, ale nigdy z nich nie korzystałem. Można to zapisać jakoś inaczej bez funkcji enum ? Wracam do GM po dłuższej przerwie, mam GM8 i brakuje tu tej funkcji Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 25 Listopada 2018 Udostępnij Opublikowano 25 Listopada 2018 W GM8 masz takie specjalne menu w którym definiujesz sobie własne stałe (constant) i tam powpisuj: enID 0 enPunkty 1 a używać będziesz tego jak zwykłej zmiennej: gLevelsDat[numerLevelu, enID] = room_1; gLevelsDat[numerLevelu, enPunkty] = 50; 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ę