Alarmy i Timeline

Sobota, 27 Grudnia 2008, 19:59
Czas czytania 2 minuty, 54 sekundy
Zgodne z GM: gm5 gm6 gm7 gm8 gms1 gms2
Paczuszka zawierająca 3 przykłady (w gmk i gm6) oraz opis Alarmów i Time Line'ów, czyli bardzo ważnych i przydatnych funkcji Game Makera.
Alarmy to bardzo przydatne funkcje Game Makera, pozwalają nam wykonać akcję po określonym czasie, przydają się nam w różnych sytuacjach, np. odliczanie do startu, odliczanie czasu przeładowania broni etc.. Oczywiście nie będziemy tutaj operować na sekundach, a na krokach bo to właśnie jednostka czasowa w Game Makerze. Jeśli chcemy operować na sekundach musimy zauważyć pewne prawidłowości:kod1 sekunda = 1 * room_speed;Tak więc 1 sekunda w GM to dokładnie tyle kroków co prędkość rooma ( room_speed ). Jeśli chcemy ustawić alarm na 5 sekund to:kod5 sekund = 5 * room_speed;Tak więc odpowiednio jeśli chcemy stawić na N sekund to:kodN sekund = N * room_speed;I tak dalej. Alarmy inicjujemy w dowolnym evencie:kodalarm[0] = 5 * room_speed; //Ustawia alarm 0 na 5 sekundKod który zostanie wykonany umieszczamy w evencie Alarm N, tutaj odpowiednio w Alarm 0.
Przejrzyj też przykłady, aby zrozumieć zasadę działania alarmów.

Time line'y są trochę podobne do alarmów, lecz w alarmie jest wykonywana jedna akcja po skończeniu odliczenia, a zaś w time line'ach w określonej kolejności może być wykonane wiele akcji w różnych odstępach czasowych. Time line'y są trochę podobne do path'ów, lecz path'e to przejścia między kolejnymi punktami ustawionymi w określonych odstępach odległościowych. Te odstępy można porównać do odstępów czasowych w time line'ach. W path'u obiekt będzie kolejno przechodził przez punkty, zaś w time line będzie odliczał czas między kolejnymi momentami i wykonywał akcje które są do nich przypisane.
Timeline dodajemy w menu Add > Add Time Line.
Timeline'y inicjujemy w dowolnym evencie za pomocą takiego kodu:kodtimeline_index = nazwa_timeline;Pozycję timeline'a zmienia się w taki sposób:kodtimeline_postion = N;Z time line'ami zapoznasz się w przykładach dołączonych do kursu.

Przyjrzyjmy się Timeline'om z bliska, kolejno wykonujemy akcje:
- File > Advenced Mode, włączamy "Advenced Mode" jeśli jeszcze tego nie zrobiliśmy.
- Add > Add Timeline, dodajemy nowy time line.

Pojawi się nowe okno z kilkoma klawiszami:
- Add, dodaje moment na time line, moment wykonany w określonym kroku. Po tym możesz skorzystać z kodu lub klocków, aby ustalić jakie akcje mają zostać wykonane w danym momencie.
- Change, zmienia dany moment na inny.
- Delete, usuwa dany moment.
- Duplicate, duplikuje dany moment.
- Shift, przesuwa wybrane momenty o podaną wartość.
- Merge, łączy wybrane momenty w inny jeden.
- Clear, czyści wszystkie momenty.

Obydwie te funkcje są bardzo przydatne. Coraz więcej pytań, których rozwiązaniem jest wykorzystanie alarmów bądź timeline'nów pojawia się na naszym forum, a przecież one są tak proste!

Wróćmy jeszcze na chwilę do alarmów. Gdy alarm zainicjujemy w evencie Step w taki sposób:kodalarm[0] = room_speed * 20;To NIE zostanie on nigdy wykonany ponieważ licznik będzie ustawiany od nowa co 1 krok. Możemy w takim wypadku użyć warunku if:
kodif( alarm[0] == 0 )
{
alarm[0] = room_speed * 20;
}
Jest to też pokazane w przykładzie 3.

Przykłady do tego kursu znajdziesz tutaj.
Komentarze (łącznie 13):
P
Pental (Sob., 27 Gru. 08, 20:58)
#1

Mało tego niestety, było dać więcej przykładów zastosowań i ciekawostek :P . Jak na początek - ok.

HuderLord (Sob., 27 Gru. 08, 21:50)
#2

Nie napisałeś co trzeba zrobić jak by jakiś newbie dał alarm w step.

P
PsichiX (Sob., 27 Gru. 08, 22:10)
#3

timeline'y mimku ;P

L
Lechu4444 (Sob., 27 Gru. 08, 23:05)
#4

czegoś się tam zawsze dowiedziałem

Paqoo (Sob., 27 Gru. 08, 23:08)
#5

Same podstawy, ale na pewno są tacy którzy tego nie wiedzieli :> I są dwie możliwości używania timingu w grze :D Ładne przykłady.

L
Lechu4444 (Nie., 28 Gru. 08, 00:28)
#6

ha słyszałem że za pomocą timelines da się zrobić loading i myślałem że to tutaj będzie pokazane ale i tak się domyślam jak to teraz zrobić tylko wersja PRO jest potrzebna.

Marmot (Nie., 28 Gru. 08, 01:12)
#7

Taka mała rada ode mnie - treść z PDF mogłeś wkleić na stronę i w pliku dać tylko przykłady. Nie każdemu chce się ściągać artykuł, oraz nie każdy ma akurat Adobe Readera. Poza tym, dałeś sam tekst. Wszystko to można bez problemu wpisać w Panelu Redaktorskim ;) .
A sam artykuł nie jest zły. Przyznam, że trochę Timelines niedokładnie wytłumaczyłeś, bo prawdę mówiąc nigdy ich nie używałem, a po lekturze Twojego artykułu nadal nie rozumiem celu i zasady ich działania.

P
Pental (Nie., 28 Gru. 08, 08:30)
#8

Marmot, timelines to kawałki kodów wykonujące się w podanych przez ciebie odstępach czasowych :P . Coś jak pathy, tylko zamiast odległości (w terenie?) jest odległość czasu, a każdy punkt to wykonywany kod :P . Kumasz?

mimek (Nie., 28 Gru. 08, 13:21)
#9

Dobra Marmot - na twoja prośbę zrobiłem tutaj Arta i przykłady są w paczce, ale poprawi ktoś, żeby to wyglądało ładnie i przejrzyście, bo ja już nie umiem...

Marmot (Wto., 30 Gru. 08, 12:01)
#10

Pental, ;p . Nie musiałeś się wysilać, bo jak coś to bym do dokumentacji zajrzał :P .

baca (Pią., 27 Maj. 11, 17:32)
#11

Jeśli gra zamuli to już ci nie ustali dokładnego czasu.
Można to inaczej zrobić:
W Create:
tstart = current_time;
w Step:
if(current_time- tstart>1000)
{
tstart = current_time;
}

1000 = 1s;
10000 = 10s;

TheMarcQ (Pią., 27 Maj. 11, 19:54)
#12

tylko pytanie: po co?

baca (Pią., 27 Maj. 11, 20:11)
#13

Dużo jest powodów dla których warto ten sposób stosować.

Najnowsze wersje GameMakera:

Stabilna
2024.2.0.132 • 2024.2.0.163
wydana 43 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 182 dni temu
Beta
2024.400.0.532 • 2024.400.0.551
wydana 14 dni temu
= IDE, = Runtime
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
10 użytkowników online na discordzie:
Carl-bot, GibkiKaktus, Grela, Dyno, szmalu, 𝕳𝖚𝖌𝖔 𝕲𝖔𝖓𝖝𝖆𝖑𝖊𝖝, LeD, bagno, g..., l...
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?