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 1 - 15):
FIREMARK (Nie., 25 Wrz. 05, 22:17)
#1

Fajny skrypt,ja używam podobny,ale bez efektów alpha :]

Ranma_man (Nie., 25 Wrz. 05, 23:14)
#2

Tematyka bardziej się nadaje na przykład, a nie na kurs GML.

Mideooo (Wto., 27 Wrz. 05, 16:52)
#3

Fajne :)

Q
Quetzacotl (śro., 28 Wrz. 05, 00:35)
#4

normalny efekt opacity ;p

Maximal (Nie., 02 Paź. 05, 15:58)
#5

Fajny skrypcik :D

J
~Jarek Gracz (śro., 04 Sty. 06, 13:55)
#6

Jak uruchamiam grę, to pojawia się tylko napis "Nowa gra" a jak wciskam, to wychodzę z gry!
Powinieneś to poprawic! Gnysek.

krychu90 (Czw., 05 Sty. 06, 13:07)
#7

LOL!To jest tylko menu!!!

guXio (Czw., 12 Sty. 06, 14:09)
#8

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

a
adam (Sob., 01 Lip. 06, 10:49)
#9

~Jarek Gracz:
"Jak uruchamiam grę, to pojawia się tylko napis "Nowa gra" a jak wciskam, to wychodzę z gry!Powinieneś to poprawic! Gnysek."
Jezu!!! Kliknij strzałką w dół to przeskoczy ci na Wczytaj grę!

gnysek (śro., 05 Lip. 06, 10:59)
#10

heh wystarczy w stepw if step=2 procedury podmienić i tyle, nie wimo co ten szum :P

G
Grizzly (śro., 13 Gru. 06, 16:52)
#11

Nie działa mi. Od razu przechodzi do gry :/

G
Grizzly (śro., 13 Gru. 06, 16:53)
#12

Ok już działa

Force (Czw., 04 Sty. 07, 12:53)
#13

ej jaka jest komenda na przejscie do nastempnego roomu w tym menu???

Blackmaul (Czw., 04 Sty. 07, 13:01)
#14

Help prawdę ci powie. Tak trudno F1 nacisnąć? :P

Marmot (Czw., 04 Sty. 07, 15:55)
#15

room_goto_next(); XD ? Ludzie, trochę myślenia, błagam :)

Najnowsze wersje GameMakera:

Stabilna
2024.06.2.162 • 2024.6.1.208
wydana 12 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 284 dni temu
Beta
2024.800.0.597 •
2024.800.0.620
 0.11.0

wydana  2 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
2 użytkowników aktywnych:
gości: 1, userów: 1
M Murrri
(~ostatnie 15 minut)
Discord
19 użytkowników online na discordzie:
s..., Alice, Carl-bot, p..., Grela, m..., OdrzuconyKrakers, HappyOrange, fervi, r..., DungeonFairy🧚, MKP (GEM), Arrekin, Dyno, LeD, m..., bagno, l..., Alkapivo
Shoutbox
gnysek (18:31, 25.07.24)
Ogłaszam nowy etap w historii GameMakera.
gnysek (11:36, 08.07.24)
Ale w sumie taki numer GG był bezpieczniejszy niż nr. telefonu czy kontakt społecznościowy. Utrudniał stalkowanie i ułatwiał banowanie.
Wojo (08:08, 08.07.24)
Niestety to już nie te czasy kiedy pytało się kasjerki o wiek i numer Gadu-Gadu...
Adriann (08:28, 05.07.24)
Albo okraść :|
Adriann (08:28, 05.07.24)
Może pani chciała zobaczyć twoje dane i Cię poderwać :d
gnysek (10:38, 03.07.24)
Mnie ostatnio w Żabce zapytali o wiek. A mam już ponad dwie osiemnastki.
Wojo (08:27, 30.06.24)
Ogólnie to miał być żart ponieważ portal internetowy, którego można opisać jako PH jest portalem przeznaczonym dla dorosłych. Miało być śmiesznie wyszło żenująco, a wiadomości w shoutboxie nie mogę skasować :P
Wojo (09:40, 28.06.24)
Tymon jak co wizytę musiałem potwierdzić wiek
gnysek (14:15, 17.06.24)
Bo Łapusz woli alkohol, niż się organizować. Co tam Pixel Heaven, sprawdźcie jego zbiórki na książki...
Adriann (21:02, 13.06.24)
Bardzo słusznie, straszna patola z tą organizacją :D
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?