Pentalinio Opublikowano 22 Lipca 2007 Udostępnij Opublikowano 22 Lipca 2007 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. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 22 Lipca 2007 Udostępnij Opublikowano 22 Lipca 2007 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 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 22 Lipca 2007 Udostępnij Opublikowano 22 Lipca 2007 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. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pentalinio Opublikowano 22 Lipca 2007 Autor Udostępnij Opublikowano 22 Lipca 2007 Tyle to ja wiem. Proszę o konkretne wypowiedzi ;) . @Edit: Dzięki Tymon :) ! Czy to znaczy, że poza wyjątkami , mogę zawsze definiować zmienne globalne? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 22 Lipca 2007 Udostępnij Opublikowano 22 Lipca 2007 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 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 22 Lipca 2007 Filar Społeczności Udostępnij Opublikowano 22 Lipca 2007 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. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pentalinio Opublikowano 22 Lipca 2007 Autor Udostępnij Opublikowano 22 Lipca 2007 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] ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 22 Lipca 2007 Udostępnij Opublikowano 22 Lipca 2007 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. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pentalinio Opublikowano 22 Lipca 2007 Autor Udostępnij Opublikowano 22 Lipca 2007 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? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 22 Lipca 2007 Udostępnij Opublikowano 22 Lipca 2007 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. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pentalinio Opublikowano 22 Lipca 2007 Autor Udostępnij Opublikowano 22 Lipca 2007 Tak, ale ja miałem na myśli, że tak nazwę te roomy, a nie sam listę będę robił :P . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Saus Opublikowano 22 Lipca 2007 Udostępnij Opublikowano 22 Lipca 2007 room_goto(choose(room0,room1,room2,room3,room4)) xD? Nie wiem czy o to ci chodzilo ale napisalem tak i przenosi losowo xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 22 Lipca 2007 Udostępnij Opublikowano 22 Lipca 2007 Ah, źle zrozumiałem. Nie można nazywać zasobów GMa w ten sposób. =) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 22 Lipca 2007 Filar Społeczności Udostępnij Opublikowano 22 Lipca 2007 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 :)). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pentalinio Opublikowano 22 Lipca 2007 Autor Udostępnij Opublikowano 22 Lipca 2007 Aha, Tymon. Ale nie widzę w twojej pętli sensu xP . Może można to jakoś inaczej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 22 Lipca 2007 Administratorzy Udostępnij Opublikowano 22 Lipca 2007 Polecam zwłascza https://gmclan.org/index.php?wiki&wart=10 oraz cały dział https://gmclan.org/index.php?wiki&wcat=9 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pentalinio Opublikowano 22 Lipca 2007 Autor Udostępnij Opublikowano 22 Lipca 2007 Gnysek, przestudiowałem wszystko (trochę tego było) i raczej nic nowego nie znam :P . Takie rzeczy to ja już dawno znałem. To podstawy GMLa ;) . 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ę