bobo Opublikowano 2 Czerwca 2006 Udostępnij Opublikowano 2 Czerwca 2006 Mam sobie taki skrypt w obj_losuj w evencie left buton: obj=random(49) switch (obj) { case 1: instance_create(32,45,obj_liczba1) break; case 2: instance_create(32,45,obj_liczba2) break; case 3: instance_create(32,45,obj_liczba3) break; case 4: instance_create(32,45,obj_liczba4) break; case 5: instance_create(32,45,obj_liczba5) break; case 6: instance_create(32,45,obj_liczba6) break; case 7: instance_create(32,45,obj_liczba7) break; case 8: instance_create(32,45,obj_liczba8) break; case 9: instance_create(32,45,obj_liczba9) break; case 10: instance_create(32,45,obj_liczba10) break; case 11: instance_create(32,45,obj_liczba11) break; case 12: instance_create(32,45,obj_liczba12) break; case 13: instance_create(32,45,obj_liczba13) break; case 14: instance_create(32,45,obj_liczba14) break; case 15: instance_create(32,45,obj_liczba15) break; case 16: instance_create(32,45,obj_liczba16) break; case 17: instance_create(32,45,obj_liczba17) break; case 18: instance_create(32,45,obj_liczba18) break; case 19: instance_create(32,45,obj_liczba19) break; case 20: instance_create(32,45,obj_liczba20) break; case 21: instance_create(32,45,obj_liczba21) break; case 22: instance_create(32,45,obj_liczba22) break; case 23: instance_create(32,45,obj_liczba23) break; case 24: instance_create(32,45,obj_liczba24) break; case 25: instance_create(32,45,obj_liczba25) break; case 26: instance_create(32,45,obj_liczba26) break; case 27: instance_create(32,45,obj_liczba27) break; case 28: instance_create(32,45,obj_liczba28) break; case 29: instance_create(32,45,obj_liczba29) break; case 30: instance_create(32,45,obj_liczba30) break; case 31: instance_create(32,45,obj_liczba31) break; case 32: instance_create(32,45,obj_liczba32) break; case 33: instance_create(32,45,obj_liczba33) break; case 34: instance_create(32,45,obj_liczba34) break; case 35: instance_create(32,45,obj_liczba35) break; case 36: instance_create(32,45,obj_liczba36) break; case 37: instance_create(32,45,obj_liczba37) break; case 38: instance_create(32,45,obj_liczba38) break; case 39: instance_create(32,45,obj_liczba39) break; case 40: instance_create(32,45,obj_liczba40) break; case 41: instance_create(32,45,obj_liczba41) break; case 42: instance_create(32,45,obj_liczba42) break; case 43: instance_create(32,45,obj_liczba43) break; case 44: instance_create(32,45,obj_liczba44) break; case 45: instance_create(32,45,obj_liczba45) break; case 46: instance_create(32,45,obj_liczba46) break; case 47: instance_create(32,45,obj_liczba47) break; case 48: instance_create(32,45,obj_liczba48) break; case 49: instance_create(32,45,obj_liczba49) break; default: room_restart(); } Z tego skryptu wynika że jak kliknie sie na obj_losuj to GM losuje liczbe z przedziału 1-49, a nastepnie wynik tego losowania zapisuje do zmiennej obj. Potem wzależności jaka jest wartość zmiennej obj. taki obj_liczba jest tworzony w roomie np. jeżeli obj=3 utworzy się obj_liczba3 itd. Lecz to jest tylko teoria w praktyce to nie działa może mi ktoś wyjaśnić czemu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Saus Opublikowano 2 Czerwca 2006 Udostępnij Opublikowano 2 Czerwca 2006 Tak samo jak probowalem zrobic ze skryptem text=get_string('pytanie',0) Powinno zapisywac, ale nie zapisywalo, wyskakiwalo uknown variable ... Nie mam pojecia czemu takiego typu skrypty odmawiaja wspolpracy :] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bobo Opublikowano 2 Czerwca 2006 Autor Udostępnij Opublikowano 2 Czerwca 2006 Ale mi żaden bład nie wyskakuje!! Tylko że to po prostu nie dziala:| Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 2 Czerwca 2006 Udostępnij Opublikowano 2 Czerwca 2006 Po pierwsze, jeśli chcesz losować w przedziale 1-49, użyj instrukcji (random(49)+1)Po drugie, zauważ, iż może zostać wylosowana każda liczba z przedziału 1-49, np.26,3. Aby temu zaradzić, musisz zaokrąglić wynik do rzędu jedności. Czyli poprawiona linijka wygląda tak: obj=round((random(49)+1)) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Czerwca 2006 Udostępnij Opublikowano 2 Czerwca 2006 Poza tym: var n; n = round((random(49)+1)); execute_string('instance_create(32,45,obj_liczba'+string(n)+')'); :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
BeWuO Opublikowano 2 Czerwca 2006 Udostępnij Opublikowano 2 Czerwca 2006 A nie powinno byćśrednika przed break? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 2 Czerwca 2006 Filar Społeczności Udostępnij Opublikowano 2 Czerwca 2006 A czemu aż tyle różnych obiektów? Zrób tylko jeden i nadawaj mu parametry zaraz potem, które będą pobierane z tablicy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bobo Opublikowano 2 Czerwca 2006 Autor Udostępnij Opublikowano 2 Czerwca 2006 Tymon a możesz mi wytłumaczyć działanie tego skryptu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 2 Czerwca 2006 Udostępnij Opublikowano 2 Czerwca 2006 Jasne: var n; - Ustawiamy 'n' jako tymczasową. n = round((random(49)+1)); - Generujemy losową liczbę od 1 do 50 (bo random(49)+1=max 50) i zapisujemy ją do zmiennej 'n'. execute_string('instance_create(32,45,obj_liczba'+string(n)+')'); - Wykonujemy kod za pomocą funkcji 'execute_string'. Kod powinien być podany w stringu. Efekt? Zostanie wykonany kod 'instance_create(32,45,obj_liczbaX)' (tam gdzie X - wartość zmiennej n) :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bobo Opublikowano 2 Czerwca 2006 Autor Udostępnij Opublikowano 2 Czerwca 2006 A czemu to wszytsko w nawiasie jest w ' '? I co powoduje funkcja execute_string();? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jakim Opublikowano 2 Czerwca 2006 Udostępnij Opublikowano 2 Czerwca 2006 A czemu to wszytsko w nawiasie jest w ' '? I co powoduje funkcja execute_string();? Czemu w nawiasie? Ponieważ każdy string zaczyna się i kończy cudzysłowiami lub apostrofami: tekst='to jest tekst' Funkcja execute_string wykonuje polecenie zapisane w stringu. funkcja='draw_text(x,y,tekst)' Sam tekst nic nie zdziała, ale dzięki tej funkcji możemy ją "przekompilować" na kod. execute_string(funkcja) I ten oto skrypcik będzie rysować jakiś tam tekst (wykona funkcję draw_text(x,y,tekst)). Mam nadzieję, że zrozumiałeś. 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ę