Exigo Opublikowano 17 Listopada 2008 Udostępnij Opublikowano 17 Listopada 2008 Czy da się stworzyć zmienną w trakcie działania programu bez deklarowania w 'create'? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 17 Listopada 2008 Udostępnij Opublikowano 17 Listopada 2008 no piszesz zmienna = cośtam i masz. Ale musisz to zrobić przed jej używaniem oczywiście. Ale lepiej deklarować w create, chyba, że to jakieś pomocniczne, to wtedy dobrze robić tymczasowe : var zmienna1, zmienna2; zmienna1 = 5; zmienna2="ccc". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 17 Listopada 2008 Udostępnij Opublikowano 17 Listopada 2008 A powiedz co chcesz zrobić ? :) Będzie łatwiej nam Ci pomóc :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Japanstache Opublikowano 17 Listopada 2008 Udostępnij Opublikowano 17 Listopada 2008 Zaznacz w global game setting "treat uninitialized variables as value 0". I jedziesz! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 17 Listopada 2008 Udostępnij Opublikowano 17 Listopada 2008 Raczej odradzałbym zaznaczanie tej opcji. Potem można walnąć literówkę w nazwie jakiejś zmiennej i nawet nie zorientować się, gdzie jest błąd. Wszystkie zmienne lokalne najlepiej wrzucać do Create, a globalne do jednego obiektu, który będzie tworzony jako pierwszy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 17 Listopada 2008 Udostępnij Opublikowano 17 Listopada 2008 Czy da się stworzyć zmienną w trakcie działania programu bez deklarowania w 'create'? Można stworzyć przecież obiekt bez danej grafiki i jemu w "Create" dać zmienną :) To tak na chłopski rozum. Raczej odradzałbym zaznaczanie tej opcji. Potem można walnąć literówkę w nazwie jakiejś zmiennej i nawet nie zorientować się, gdzie jest błąd. Wszystkie zmienne lokalne najlepiej wrzucać do Create, a globalne do jednego obiektu, który będzie tworzony jako pierwszy. O z tą wypowiedzią na 100% się zgadzam! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 17 Listopada 2008 Udostępnij Opublikowano 17 Listopada 2008 GML if( !variable_local_exists( "zmienna" ) ) zmienna = 0; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 17 Listopada 2008 Udostępnij Opublikowano 17 Listopada 2008 Dokładnie to samo robi "treat uninitialized variables as value 0". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 17 Listopada 2008 Udostępnij Opublikowano 17 Listopada 2008 Ale to mu się odwoła tylko do tej zmiennej. A nie do wszystkich :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 Tylko, że variable_local_exists etc. jest wolne. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 18 Listopada 2008 Autor Udostępnij Opublikowano 18 Listopada 2008 Przykładowo chciałbym zrobić coś takiego... Powiedzmy że mam pętlę która tworzy zmienne pod względem innej zmiennej(namieszałem troche) np. create x = 0; step while (x <= 30) "dodaj" && x -= 1; (zapisując obrazowo) To "dodaj" działa mniej więcej tak, że dodaje zmienną... Czyli jest np. 30 zmiennych zm1 =0; zm2 =0; itd... aż do 30. - Tyle zmiennych tworzy, ile "x" ma wartości Sęk w tym że nie wiem jak to zrobić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 GML max=30 for(i=0;i<max;i+=1)execute_string('zm'+string(i)+'=0') tylko po jaka cholibke to, skoro mozna uzyc tablic jesli jest stala numeracja? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 18 Listopada 2008 Autor Udostępnij Opublikowano 18 Listopada 2008 Niestety tablic używać nie umiem, a w helpie ten temat jest strasznie topornie przetłumaczony... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 no to listy, gridy.. sa szybsze niz tablice i lepiej sie na nich operuje Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 kuba, to co starasz się zrobić to właśnie tablica... Nie wiem czy wy też to zauważyliście... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 Tablica to taki zbiornik ze zmiennymi mających ze sobą jakiś związek. używamy ich np. w bazach danych: GML //tablica jednowymiarowa pistolet[0]='pistolet';//nazwa pistolet[1]=5;//atak pistolet[2]=3;//czas przeładowania karabin[0]='karabin'; karabin[1]=1; karabin[2]=0.5; //itd. A wiec w powyższym przykładzie tablica pistolet przechowuje zmienne dot. pistoletu, karabin dotyczące karabinu. Ponieważ pistolet i karabin są brońmi(broniami?) można połączyć je w jedną tablicę dwuwymiarową: GML //tablica dwuwymiarowa bron[0,0]=pistolet; bron[0,1]=5; bron[0,2]=3; bron[1,0]='karabin'; bron[1,1]=1; bron[1,2]=0.5; Pierwsza liczba w tej tablicy oznacza rodzaj tablicy, natomiast druga jej cechę. Oczywiście tablica ma o wiele więcej zastosowań. Mam nadzieję, że teraz rozumiesz :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 Kuba: no weź, tablice są tak proste ;p Jak masz zamiar dalej zajmowac sie programowaniem, to najwyższy czas się wziąć za tablice. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 18 Listopada 2008 Autor Udostępnij Opublikowano 18 Listopada 2008 Proste proste.... ale czym się różnią zmienne od tablic? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 tablice maja uporzadkowany zbior danych i mozna sie do nich w sposob iteracyjny dostac Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 pętle + tablice = wporzo sprawa. Niektórych rzeczy nie dasz rady zrobić bez tablic, a nawet jesli to będzie to bez sensu, niewydajne, niefajne w obsłudze i 'wogle'. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 Mini-kursik :P GML zmienna[0] = 0; zmienna[1] = 0; zmienna[2] = 0; zmienna[3] = 0; zmienna[4] = 0; zmienna[5] = 0; ... zmienna[100] = 0; Właśnie stworzyliśmy sobie tablicę, która posiada 100 pozycji. Ale w sumie, po cholerę nam takie coś...? A no po to, że zamiast tego numerku (0, 1, 2, 3, 4, 5...) możemy użyć zmiennej. Czyli deklarowanie tej tablicy można lepiej zrobić tak (łatwiej for, ale na repeacie chyba łatwiej Ci będzie zrozumieć...) GML i = 0; //To jest numer tablicy, ktory aktualnie tworzymy repeat(100) //Kod powtorzy sie 100 razy... { zmienna = 0; Deklaruje tablice o numerze "i" (zmienna)... i += 1; //Dzieki temu co wykonanie petli i bedzie podskakiwalo do gory - czyli bedzie deklarowany coraz to kolejny numer tablicy } Mam nadzieję, że rozumiesz :P To nam dają tablice, że możemy się odwołać do tej, którą chcemy. To w sumie wszystko... :D O, mam pomysł. "Pseudo-notatnik". Create GML //deklarujesz tablice note[] o 100 wartosciach (0-99) //to se chyba umiesz zrobic juz :P Draw GML i = 0; text = ""; repeat(100) { text += "moja_tablica[" + string(i) + "] = " + note + "#"; i += 1; } draw_text(5, 5, text); Step GML if(keyboard_check_pressed(vk_enter)) { set_note_nr = get_integer("Podaj numer tablicy, ktora wartosc chcesz ustawic...", 0); set_note_value = get_string("Podaj wartosc notatki", ""); note[set_note_nr] = set_note_value; } Przeanalizuj ten kod 5 razy, i się powinieneś zorientować, o co chodzi :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 Różnią się tym, że mają swoje klucze, tak jak te Twoje zmienne "zmienna1, zmienna2..., zmiennaN". Tutaj masz to samo tylko że "zmienna[1], zmienna[2]..., zmienna[N]". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 Różnią się tym, że mają swoje klucze, tak jak te Twoje zmienne "zmienna1, zmienna2..., zmiennaN". Tutaj masz to samo tylko że "zmienna[1], zmienna[2]..., zmienna[N]". i można się łatwo odwołać no na przykład masz strzelniankę, w create robisz tyle tablic ile broni czyli GML (create) for(i=0;i<liczba_broni;i+=1) { naboje=10 szybkosc_ladowania=5 itd. } //teraz deklaruje se zmienna jaka będzie odpowiadać, za broń, którą używam now_used=0 No i w stepie se zrobię operację... GML (step) if naboje[now_used]=0 then instance_destroy() Rozumiesz? łatwy i szybki dostęp. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 for(i=0;i<liczba_broni;i+=1) { naboje=10 szybkosc_ladowania=5 itd. } Akurat to to nie ma sensu, bo każda komórka tablicy ma i tak, taką sama wartość. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 18 Listopada 2008 Udostępnij Opublikowano 18 Listopada 2008 No niby tak, ale to taki logiczny przykład bardziej ;P 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ę