Arekadiusz Opublikowano 29 Kwietnia 2010 Udostępnij Opublikowano 29 Kwietnia 2010 Witam wszystkich! A więc skorzystałem z jakiegoś przykładu menu(nie pamiętam jakiego :jezor: ). I jest on taki: CREATE: GML menu=0; menu_txt[0]='Nowa gra'; menu_txt[1]='Info'; menu_txt[2]='Koniec gry'; STEP: GML if menu>2 { menu=0; } if menu<0 { menu=2; } if keyboard_check_pressed(vk_up) { menu-=1; } else if keyboard_check_pressed(vk_down) { menu+=1; } if keyboard_check_pressed(vk_enter) { if menu=0 { room_goto(rgra) } else if menu=1 { show_info() } else { game_end(); } } DRAW: GML draw_set_font(font_bold); for(i=0;i<=2;i+=1) { if menu=i { draw_set_color(c_red); } else { draw_set_color(c_black); } draw_text(x,y+60*i,menu_txt); } Przerobiłem kod w CREATE na taki: GML menu=0; ini_open("menu.ini") menu_txt[0]=ini_read_string("menu","0","") menu_txt[1]=ini_read_string("menu","1","") menu_txt[2]=ini_read_string("menu","2","") ini_close() I pojawił się taki problem,że mogę wczytać tylko te trzy zmienne. A ja bym chciał móc wczytywać więcej zmiennych. Czy dałoby się zrobić tak,że Game Maker(oczywiście podczas gry) wykryje ile jest tych zmiennych i wczyta je wszystkie do gry? Credtisy i moja wdzięczność za pomoc ^_^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 29 Kwietnia 2010 Udostępnij Opublikowano 29 Kwietnia 2010 jasne, pętla i prosty warunek. napisze Ci jak bede w domu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 29 Kwietnia 2010 Autor Udostępnij Opublikowano 29 Kwietnia 2010 Ok dzięki,czekam. Pętle kiepsko mi wychodzą :crying: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2010 Udostępnij Opublikowano 30 Kwietnia 2010 wczoraj się nie wyrobiłem :P zobacz czy dziala: GML i = 0; while( ini_key_exists( "menu", string( i ))) { menu_txt[ i ] = ini_read_string( "menu", string( i ), "" ); i += 1; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 30 Kwietnia 2010 Autor Udostępnij Opublikowano 30 Kwietnia 2010 Wyświetlanie działa tylko że wyświetla się taki błąd: ___________________________________________ ERROR in action number 1 of Draw Event for object obj_menu: Error in code at line 13: draw_text(x,y+20*i,menu_txt); ^ at position 25: Unknown variable menu_txt or array index out of bounds I jeszcze jedno. W tym kodzie który jest w pierwszym poście w step jest także ograniczenie wyboru i w draw ustawia się ilość pozycji do rysowania. To też trzeba było by zmienić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 30 Kwietnia 2010 Udostępnij Opublikowano 30 Kwietnia 2010 Zamień menu_txt na string(menu_txt), czy ten kod Marka jest w obiekcie z menu? Rysowanie i wgl. to kolejna pętla :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 30 Kwietnia 2010 Autor Udostępnij Opublikowano 30 Kwietnia 2010 Tak,wszystko jest w jednym obiekcie. Nie działa mi to.Błąd: ___________________________________________ ERROR in action number 1 of Draw Event for object obj_menu: Error in code at line 13: draw_text(x,y+20*i,string(menu_txt)); ^ at position 32: Unknown variable menu_txt or array index out of bounds Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bluks Opublikowano 30 Kwietnia 2010 Udostępnij Opublikowano 30 Kwietnia 2010 To daj ten przykład. To wtedy znajdziemy bo może coś ominąłeś. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 3 Maja 2010 Autor Udostępnij Opublikowano 3 Maja 2010 Link do pliku z tym menu: >>>TUTAJ<<< Proszę też przeokazji o zrobienie tych kolejnych pętli w Draw i Step. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
bluks Opublikowano 3 Maja 2010 Udostępnij Opublikowano 3 Maja 2010 Błąd GM. Daj na samym końcu w Create: menu_txt="-------------" możesz też dać cokolwiek innego zamiast "-------------" i to będzie pokazywane jako ostatni tekst/wartość wyświetlanego tekstu. :D EDIT: Teraz trochę wytłumaczę: Problem polega na tym że pobiera określoną ilość zmiennych u ciebie w ini jest ich o jedną za mało, więc wyskakuje błąd, a tamto zapełna brakujące pola tym "-------------". GM pobiera max/min 6 wartości: 0=Haslo 1=Kod 2=Dzwieki 3=Muzyka 4=Grafika 5=Inne 6=? //Jej brak więc wyskakuje błąd. 7= Ani wyższej nie doda. Dlatego jeżeli chcesz aby było ich więcej, wstaw następny skrypt typu: if wartośc_w_ini_jest_więcej_niż>=6 { Zaczyna je sprawdzać od 7 a nie 0 jak ustawiłeś }. Napisz jeśli coś nie tak Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 4 Maja 2010 Autor Udostępnij Opublikowano 4 Maja 2010 Dzięki bluks działa :thumbsup: Ale proszę jeszcze o pomoc w STEP (w ograniczeniu wyboru) i w DRAW (przy rysowaniu) bo też nie chce mi to wyjść. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 4 Maja 2010 Udostępnij Opublikowano 4 Maja 2010 bla bla bla. po prostu w moim kodzie zamień kolejność GML menu_txt[ i ] = ini_read_string( "menu", string( i ), "" ); i += 1; tych dwóch linijek. zaraz wrzuce Ci porządną wersję. E: GML [Create] ini_open( "menu.ini" ); i = 0; while( ini_key_exists( "menu", string( i ))) { menu_txt[ i ] = ini_read_string( "menu", string( i ), "" ); i += 1; } ini_close() menu_count = i; menu_cursor = 0; [Step] if ( keyboard_check_pressed( vk_up )) menu_cursor -= 1; if ( keyboard_check_pressed( vk_down )) menu_cursor += 1; if ( menu_cursor > menu_count -1 ) menu_cursor = 0; if ( menu_cursor < 0 ) menu_cursor = menu_count - 1; if ( keyboard_check_pressed( vk_enter )) { switch( menu_cursor ) { case 0: show_message( 'wybrano pozycje 1' ); break; case 1: show_message( 'wybrano pozycje 2' ); break; case 2: show_message( 'wybrano pozycje 3' ); break; case 3: show_message( 'wybrano pozycje 4' ); break; } } [Draw] draw_set_font( font_menu ); for( i = 0; i < menu_count; i += 1 ) { if ( i == menu_cursor ) draw_set_color( c_red ); else draw_set_color( c_black ); //rysowanie pozycji menu draw_text( x, y + 20 * i, string( menu_txt )); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Arekadiusz Opublikowano 4 Maja 2010 Autor Udostępnij Opublikowano 4 Maja 2010 Wielkie dzięki Marek.S Działa! 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ę