Skocz do zawartości

room przejściowy między levelami


SIDek

Rekomendowane odpowiedzi

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

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

W GM8 masz takie specjalne menu w którym definiujesz sobie własne stałe (constant)

form_constants.jpg

 

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

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