Ten artykuł został stworzony dla starszych wersji GameMakera i może nie być aktualny.

Efektowne menu

Niedziela, 25 Września 2005, 21:13
Czas czytania 2 minuty, 18 sekund
Zgodne z GM: gm6
Jak zrobić zaawansowane menu.
TYLKO GAME MAKER 6.1

tworzymy nowy obiekt obj_menu. Dajemy kod w create:
kodalpha=0;
step=0;
kursor=0;
m[0]='Nowa gra';
m[1]='Wczytaj Grę';
m[2]='Zakończ';
kursor_max=2;
teraz dajemy kod w step:
kodif step=0
{
if alpha<1 then alpha+=0.1 else{
alpha=1;
step=1;
}
}

if step=2
{
if alpha>0 then alpha-=0.1 else{
instance_destroy();
}
}
w draw:
koddraw_set_alpha(alpha);
for (i=0; i<=kursor_max; i+=1;)
{
if i=kursor then draw_set_color(c_white) else draw_set_color(c_black);
draw_text(0,0+(40*i),m[i]);
}
w key press up dajemy kod:
kodif step=1
{
if kursor>0 then kursor -=1 else kursor=kursor_max;
//ewentualnie: sound_play(muzyczka);
}
w key press down dajemy kod:
kodif step=1
{
if kursor<kursor_max then kursor +=1 else kursor=0;
//ewentualnie: sound_play(muzyczka);
}
w key_press enter dajemy kod
kodif step=1
{
step=2;
//ewentualnie: sound_play(muzyczka);
}
i na sam koniec w on destroy dajemy kod:
kod
draw_set_alpha( 1 );
switch kursor
{
case 0: /*gdy wybrano nowa gra*/; break;
case 1: /*gdy wybrano wczytaj*/; break;
default: game_end();
}

Teraz tłmaczę o co chodzi:
W CREATE definiujemy zmienną alpha, która odpowiada za rozjaśnianie i przyciemnianie menu.
Zmienna step pomaga nam to kontrolować.
Zmienna kursor odpowiada za aktualną pozycję kursora.
Zmienne m[0]...m[n] odpowiadają za kolejne pozycje w menu
Zmienna kursor_max, musi być równa liczbie n z poprzedniej zmiennej (w tym wypadku 2)

W STEP zajmujemy się opoeracjami na rozjaśnianiu i przyciemnianiu menu.

W KEY_UP i KEY_DOWN operujemy na zmianie pozycji kursora, ale tylko gdy step=1 czyli menu jest widoczne i ani się nie rozjaśnia, ani też nie przyciemnia.

W ENTER nakazujemy się obiektowi przyciemniać, zmieniając step na dwa, tym samym unieruchamiając operacje na kursorze. Akcja w step doporowandzi do powolnego zniknięcia menu, a na końcu zniszczy go.

W DESTROY dajemy akcje jakie nalezy wykonać po wybarniu konkretnego menu. Dajemy je dopiero tutaj, bo w tym momencie obiekt zniknął, więc musi się coś wydarzyć. Najlepiej zrozumiesz to gdy zobaczysz skrypt w akcji.

W DRAW w pętli FOR, malujemy menu. Ustawiamy prześwitywalność na alpha, można dodatkowo ustawic rozmiar czcionki (przed pętlą). W pętli ustawiamy kolor czcionki na czarny, lub na biały gdy aktualny tekst odpowiada pozycji kursora.

Dla początkujących skrypt ten może być dość skomplikowany, ale sam strouję go w praktyce od dość dawna, w róznych modyfikacjach (nie tylko do menu, ale np. do plansz z wpisywaniem imienia, plansz tekstowych, oraz plansz z pytaniami). Po drobnych modyfikacjach w draw, można uzyskac naprawdę wspaniałe efekty, włącznie z kursorem oraz tłem dla menu. Ten sam skrypt został zastrosowany w 80% moich gier.
Komentarze (łącznie 63, wyświetlam 31 - 45):
kamciog (Wto., 24 Cze. 08, 14:35)
#31

Nawet dobre
;)

nikki (Pon., 28 Lip. 08, 19:25)
#32

nie działa mi nowa gra:(

Misiek999 (Pon., 28 Lip. 08, 20:45)
#33

kolejny co bezmyślnie skopiował lol

L
Lechu4444 (śro., 30 Lip. 08, 18:34)
#34

nikki a wo ogóle coś zrobiłeś/aś od siebie?? Nie wiem dodałaś skrypt na nową grę

C
compi (śro., 10 Gru. 08, 19:41)
#35

Mnie też nie działa nowa gra a mam kod w Case 0 : room_goto = intro
;/

gnysek (śro., 10 Gru. 08, 19:58)
#36

case 0: room_goto(intro); break;

S
SthridX (śro., 25 Mar. 09, 17:13)
#37

Jak zrobić aby się dało przenieść to nowa gra etc do środka, oraz we wczytaj grę móc wybierać roomy xD?

S
SthridX (śro., 25 Mar. 09, 17:26)
#38

A btw, compi, ja mam tak to zrobione:
w pierwszym roomie bez niczego dać obiekt menu a w destroy:

case 0: room_goto_next(); break;

A w następnych roomach niech będzie wszystko inne xF

mosiek96 (Wto., 04 Sie. 09, 21:13)
#39

A jak ustawić pozycje menu bo jak ustawiłem obj_menu na środku ekranu to mi menu zrobił w prawym rogu sprawdzałem kod w create w draw ale niestety jestem początkujący i nie za bardzo go rozumie

4
47xxxxxxxx (Wto., 04 Sie. 09, 21:22)
#40

draw_text(0,0+(40*i),m[i]); - zmień pogrubiony tekst

mosiek96 (Wto., 04 Sie. 09, 21:24)
#41

dobra poradzilem sobie :)

kamcio540 (Wto., 27 Kwi. 10, 17:27)
#42

Gdy klikne np. na nowa gra , to znikają litery. A jak zrobić by np. Weszło do następnego pomieszczenia ??

kamcio540 (Wto., 27 Kwi. 10, 17:43)
#43

he udało sie to zrobić.a jak usunełem to wczytaj gre to teraz mi sie wszystko pomieszało i pisze

0

nowa gra

zakończ

kamcio540 (Wto., 27 Kwi. 10, 17:56)
#44

create:

alpha=0;
step=0;
kursor=0;
m[1]='Nowa gra';
m[2]='Zakończ';
kursor_max=2;

destroy:

draw_set_alpha( 1 );
switch kursor
{
case 0: room_goto(skater_room_position_1); break;
default: game_end();
}

D
Dawka83 (Wto., 27 Kwi. 10, 18:46)
#45

bo zaczynasz od 0 m[0]='Nowa gra' itd

Najnowsze wersje GameMakera:

Stabilna
2024.2.0.132 • 2024.2.0.163
wydana 54 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 193 dni temu
Beta
2024.400.0.549 • 2024.400.0.567
wydana  4 dni temu
= IDE, = Runtime
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
Shoutbox
gnysek (20:44, 11.04.24)
Niektórzy dlatego wybierają GMEdit. Ale ja liczę na Code Editor 2, tylko na razie zbyt zbugowany jest.
Tymon (16:11, 11.04.24)
Stitch dla mnie osobiście jest lepszy bo nie musze kopać się z interfejsem GMa i mogę tylko pisać kod.
Tymon (16:05, 11.04.24)
Yes. Obecny nie jest taki zły, jak zainstalowałem najnowszą stabilną to w porównaniu z tym czego używałem... 10 lat temu...? Wszystko wydaje się lepsze.
gnysek (22:48, 10.04.24)
bscotch/stitch ? Ja czekam na fixy do nowego edytora, bo wszystko wydaje się dziś lepsze od tego obecnego :D
Tymon (19:54, 10.04.24)
Hm, Stitch okazuje się całkiem dobrą alternatywą dla wbudowanego edytora
Wojo (22:16, 08.04.24)
siemano huder myślałem, że zniknąłeś całkiem z gmclanu bo na discordzie cie nie ma :D
I am Lord (00:37, 05.04.24)
O dzięki :D
gnysek (09:58, 02.04.24)
Znalazłem na podstawie jego postów: youtube.com/@Jakim_
I am Lord (20:16, 01.04.24)
Ktoś ogarnia jakie konto miał Jakim na YT?
gnysek (16:07, 29.03.24)
Nowy Edytor kodu jednak po świętach
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?