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
2023.11.1.129 • 2023.11.1.160
wydana 73 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 132 dni temu
Beta
2024.200.0.499 • 2024.200.0.516
wydana  5 dni temu
= IDE, = Runtime
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
20 użytkowników online na discordzie:
LadyLush❄, DungeonFairy🧚, MKP, Carl-bot, p..., wojzx, Tival, YoungKrystian, PhysX ᴺⱽᴵᴰᴵᴬ, debil debilowski, Uzjel, lethian, HappyOrange, LeD, Dyno, Deusald, bagno, Tidżi, l..., Draczeq
Shoutbox
S
Sutikku (23:23, 23.02.24)
powiedziałbym, że może jakiś gigantyczny czerwony baner by się przydał, ale obawiam się, że mógł taki być, a ja go nie widziałęm
S
Sutikku (23:22, 23.02.24)
uwierzcie mi, że wchodzę na gmclan naprawdę bardzo często, ale jakoś tej ligi nie zauważyłem :(
I am Lord (12:01, 23.02.24)
Kurde kolejna tura mnie omineła 🙈
gnysek (10:49, 20.02.24)
Ja czekam na pluginy do IDE, czego YYG nie zrobi, zrobimy sami.
Adriann (11:50, 16.02.24)
Ciekawe jak go przerobią, osobiście liczę na jakąś większą rewolucję a nie tylko usprawnienie bo narazie jest jak jest :d
gnysek (10:32, 08.02.24)
Edytor roomów ma swoje minusy. Ale ma być tworzony nowy wkrótce, chociaż pewnie 6-12 miesięcy zanim trafi do wersji stabilnej jak nic.
p
pablo1517 (08:40, 07.02.24)
No ja odkąd zacząłem w ue4 pracować to niestety z GMLem dawno nie obcowalem
exp (20:13, 30.01.24)
@pablo1517 ja przerzuciłem się z klasycznego GM na Studio cztery lata temu, więc przeskok trochę mniejszy, ale generalnie idea dużo się nie zmieniła. jest trochę upierdliwości i niepotrzebnych według mnie zmian, ale też duże usprawnienia (edytor roomów to raj na ziemi w porównaniu z tym oryginalnym)
Adriann (18:59, 28.01.24)
Takk..strasznie są upierdliwe :D
I am Lord (17:08, 28.01.24)
Mniej czasu się straci tworząc system particli z kodu od zera niż się męczyć z importem ich z edytora, 🤦‍♂️🤦‍♂️
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?