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
2 użytkowników aktywnych:
gości: 1, userów: 1
 Cannon Fodder
(~ostatnie 15 minut)
Discord
48 użytkowników online na discordzie:
Kysiu, s..., Alice, DungeonFairy🧚, Nitro Slav, Carl-bot, p..., Dominator2v, Grela, Wielki Druid, TinyFish, Add92, 21Lancz, Kowu, OdrzuconyKrakers, Filyps, fervi, Radek Ignatów, Kalor, r..., antek, LadyLush, lethian, VanhGND, HappyOrange, MKP (GEM), Arrekin, MagnusArias, Domeen0, Dyno, 🆅🅸🆃🅾74🅼, Deusald, Korodzik, 𝕳𝖚𝖌𝖔 𝕲𝖔𝖓𝖝𝖆𝖑𝖊𝖝, LeD, Ulti, 🧁Cupcake🧁, bagno, Mtax, g..., l..., Alkapivo, moeglich, Nikas, Krzysiek1250, Shockah, Kandif, exigo
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?