· Polskie centrum programu GameMaker Studio · Jesteśmy z wami już 21 lat! ·
Treść artykułu
Alarmy i Timeline
autor: Mimek (27.12.08) | czas czytania: 2 minuty, 54 sekund
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:¤ KopiujGMLalarm[0] = 5 * room_speed; Kod 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:¤ KopiujGMLtimeline_index = nazwa_timeline;Pozycję timeline'a zmienia się w taki sposób:¤ KopiujGMLtimeline_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:¤ KopiujGMLalarm[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:
¤ KopiujGMLif( alarm[0] == 0 )
{
alarm[0] = room_speed * 20;
}Jest to też pokazane w przykładzie 3.
Przykłady do tego kursu znajdziesz tutaj.
głosów: 12 | ocena: 8.17

| dodał:
Mimek
Komentarze
Mało tego niestety, było dać więcej przykładów zastosowań i ciekawostek
. Jak na początek - ok.
I am Lord (21:50, 27.12.2008)
Nie napisałeś co trzeba zrobić jak by jakiś newbie dał alarm w step.
PsichiX (22:10, 27.12.2008)
timeline'y mimku ;P
Lechu4444 (23:05, 27.12.2008)
czegoś się tam zawsze dowiedziałem
Paqoo (23:08, 27.12.2008)
Same podstawy, ale na pewno są tacy którzy tego nie wiedzieli :> I są dwie możliwości używania timingu w grze
Ładne przykłady.
Lechu4444 (0:28, 28.12.2008)
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 (1:12, 28.12.2008)
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.
Mimek (13:21, 28.12.2008)
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 (12:01, 30.12.2008)
Pental, ;p . Nie musiałeś się wysilać, bo jak coś to bym do dokumentacji zajrzał
.
baca (17:32, 27.05.2011)
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 (19:54, 27.05.2011)
tylko pytanie: po co?
baca (20:11, 27.05.2011)
Dużo jest powodów dla których warto ten sposób stosować.
Dodaj komentarz:
GMCLAN to serwis o programie
Game Maker i nie tylko.
[
Polityka prywatności ]
Copyright © 2002-2023. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus, © 2017-2023
{=|=} fable_inside();
[ Czas generowania strony: 0.07891 sekund ] [ Liczba zapytań MySQL: 13 ]