Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Są to moje pierwsze pytania dotyczące GMa, jeżeli są proste prosiłbym o przeniesienie ich do innego działu.

 

1. Co to jest global? Obiekt, czy zasięg modułowy? Dlaczego musimy używać operatora wyłuskania (kropka) przy definiowaniu zmiennych globalnych?

2. Czy do zmiennej można przypisać wartość global :P , np. by uprościć sobie kod:

g = global;
g.zmienna = 0;     //definiowanie zmiennej

3. Czy używanie zmiennych globalnych ma wpływ na pamięć? To znaczy czy zmienne lokalne zajmują mniej miejsca w pamięci, niż globalne? Ile zajmują zmienne globalne, a ile lokalne? Czy wielki wpływ na to mają wartości tych zmiennych?

 

Pytania może są dziwne, ale jestem bardzo ciekawy odpowiedzi. Prosiłbym o konkretne i złożone odpowiedzi. Prosiłbym także, aby nie było odpowiedzi typu: "nie wiem" .

 

Pozdrawiam,

Misztrzunio.

Opublikowano

zmienne globalne są po to byś mógł z każdego obiektu odczytać wartość jakiejś zmiennej, tzn. aby odczytać wartość zmiennej nie musi być danego obiektu/instancji w roomie, tak jak to masz przy zmienych lokalnych.

 

Przykład: chcesz by jakąś zmienną mógł odczytać każdy obiekt niezależnie od tego czy właściciel zmiennej istnieje w roomie, wiec zapisujesz zmienna do global.

 

Mam nadzieje że nie namieszałem :P

Opublikowano

1. Obiekt, dlatego też ta kropka.

2. Można tak. =)

3. Nie ma, ale czas dostępu do globalnych o ile pamiętam jest krótszy niż do lokalnych.

Opublikowano

Oczywiście. To tak jak byś miał obiekt o nazwie globalne i się odwoływał globalne.zmienna. Wychodzi na to samo - oczywiście pomijamy fakt, że global jest tylko zwykłym kontenerem na zmienne, a nie normalnym obiektem GMowskim.

 

EDIT

Nie wiem czy byś nawet znalazł jakieś wyjątki. =P

  • Filar Społeczności
Opublikowano

1. Zasięg. Zmienne globalne są dostępne w czasie całego toku gry, a lokalne należą tylko do danych obiektów.

 

2. Nie wiem czy da się tak, ale skoro Tymon potwierdza... Tak czy siak nie polecam takiego sposobu, ponieważ nie masz wtedy jasnego rozróżnienia co jest zmienną globalną, a co obiektem.

 

3. Pewnie tyle samo. Poza tym spokojna głowa, wystarczy że do gry dasz jakiś duży rysunek i będzie on zajmował zazwyczaj parokrotnie więcej miejsca niż wszystkie zmienne w całej twojej grze. :)

Opublikowano

Dobrze. Zadam jeszcze jedno pytanie, aby nie zakładać nowego tematu.

 

1. Czy room to także klasa/obiekt?

2. Czy mogę brać roomy za tablice (nie elementy tablic). Np. mam trzy roomy. I ich nazwy:

1 - r[0]

2 - r[1]

3 - r[2]

I dla przykładu:

liczba = round(random(2));
room_goto(r[liczba]);

Czy kod ten przeniesie mnie do jednego z 3 roomów, czy przejdzie do rooma o nazwie r[liczba] ?

Opublikowano

1. Nie.

2. Tak, ale musisz zrobić ich listę:

    next = room_first;
    roomsCount = 0;
    while( next != -1 )
    {
        rooms[roomsCount] = next;
        roomsCount += 1;
        
        show_message( string( roomsCount ) + ' ' + string( next ) );
        
        next = room_next( next );
    }

W tablicy rooms masz indexy roomów, a w roomsCount ich ilość w tablicy.

Opublikowano

Hmm, a ta lista to mi na co :D ? Bo ja nie rozumiem xD . Zaraz się dokładnie przyjrzę i przeanalizuję ;) .

 

Skoro roomy to nie obiekty, to co? Zmienne?

 

@Edit: Aha, już się bardziej przyjrzałem. W takim razie mogę teraz spokojnie napisać:

room_goto( rooms[round( random( roomsCount ) )] );

Tak?

Opublikowano

No bo GM nie oferuje takiej listy, a o taką Ci chodziło. Prawda?

 

Np. tablice? Zmienne? W końcu to tylko kontenery na obiekty.

Choć kto wie co to jest, mogą to być obiekty, ale nic mi na to nie wskazuje.

 

EDIT

Tak.

Opublikowano

room_goto(choose(room0,room1,room2,room3,room4))

 

xD? Nie wiem czy o to ci chodzilo ale napisalem tak i przenosi losowo xD

  • Filar Społeczności
Opublikowano

Room'y to tylko zmienne trzymające numer identyfikacyjny zasobu nadawany automatycznie przez GM'a. Tak samo jest ze wszystkimi typami zasobów z drzewka (za wyjątkiem obiektów, które są dodatkowo obiektami :)).

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