Ten artykuł został stworzony dla starszych wersji GameMakera i może nie być aktualny.

Triggery (wyzwalacze) w GM8

Piątek, 03 Lipca 2009, 17:42
Czas czytania 1 minuta, 59 sekund
Zgodne z GM: gm8
W GM8 udostępniono Triggery. Na podstawie wersji beta, opiszę pokrótce jak ich używać
Wymaga wersji GM8 PRO do działania.


Triggery są niczym innym, jak kolejnym zdarzeniem obok Create, Alarm czy Step, które może nastąpić w naszym obiekcie. Tak naprawdę, jest to zwykły warunek który można by dać w step, ale jeżeli kilka różnych obiektów ma te same warunki, to można by z nich zrobić osobne zdarzenie.

Za przykład niech posłuży energia przeciwników. Załóżmy, że mamy trzy jednostki: objRycerz, objLucznik, objCzarownik. Każdy z tych obiektów posiada zmienną energia = 100;. Gdy energia spada poniżej zera, to obiekt powinien zostać zniszczony.

Dodajemy zatem nowy Trigger (Add Event > Trigger > Add/Modify Triggers). W pole Name wpisujemy Koniec energii. Teraz wypełniamy pole Condition. Tutaj wpiszemy warunek, który musi zaistnieć, aby nasz trigger zadziałał. Konieczne jest, aby wystąpiło słowo return zwracające wartość true lub false. Nasz kod będzie wyglądał tak:
kodif energia<1 then return true else return false;Teraz gdy energia będzie wynosiła 0 i mniej, nastąpi wywołanie naszego triggera.
Można też zapisać krócej:
kodreturn energia<1;Pozostałe dwa pola edycji omówię dalej, teraz je pomijamy i zatwierdzamy zmiany.

Ostatnia rzecz, to dodanie go do listy zdarzeń. Wybieramy Add Event > Trigger > Koniec Energii, i przeciągamy klocek Destroy Instance, lub wpisujemy ręcznie kod.

Teraz możemy nasz wyzwalacz dodawać do wszystkich obiektów, w których będzie zmienna energia aby sprawdzać, czy można już zniszczyć obiekt czy nie.


Pozostałe opcje

W formularzu edycji Triggera są jeszcze dwie opcje.
Moment of checking oznacza, kiedy warunek triggera ma być spełniony. Działa to tak samo jak Begin Step, Normal Step i End of Step z listy zdarzeń.

Constant name - nazwa stałej (nie moze być zdefiniowana w oknie Constans), którą w kodzie można użyć do sprawdzenia, czy trigger zaistniał. Dla przykładu ustawiając za constans nie_ma_energii, w zdarzeniu step możemy sprawdzić wystąpienie triggera tak:
kodif nie_ma_energii then instance_destroy();Efekt będzie taki sam, jak dodanie zdarzenia Trigger Koniec energii omówionego powyżej.
Komentarze (łącznie 22, wyświetlam 16 - 30):
Marek Siemaszko (Sob., 04 Lip. 09, 21:40)
#16

dziwne te tiggery :F

P
giermek (Sob., 04 Lip. 09, 21:51)
#17

Jaklub, grr, wystarczy return ( energia < 1 ) :P .

P
giermek (Sob., 04 Lip. 09, 21:52)
#18

Triggery w GMie sensu nie mają, one są używane najczęściej w edytorach plansz / map w grach o ile nie ma jakiegoś prostego języka skryptowego :P .

Ghost (Sob., 04 Lip. 09, 23:03)
#19

Według mnie lepsze są normalne, zwyczajne zmienne w Create. :) Mniej kodu i roboty. I łatwiejsze.

Jaklub (Sob., 04 Lip. 09, 23:58)
#20

Giermek: co do return energia<1, to faktycznie można i tak.
Ghost: czy ty dobrze zrozumiałeś artykuł?

Platyna (Nie., 05 Lip. 09, 19:23)
#21

Coś całkowicie zbędnego moim zdaniem. Chociaż może początkującym to coś ułatwi pracę.
A artykuł jak artykuł. Jest ok. W sumie nie ma co tu opisywać za bardzo. Nie miałeś gnysiu zbyt dużego pola do popisu. Bo to zbędny bajer.

gnysek (Nie., 05 Lip. 09, 22:05)
#22

Nom i myślę, że temat w sumie wyczerpałem.

Najnowsze wersje GameMakera:

Stabilna
2024.14.4.221 • 2024.14.4.265
wydana  2 dni temu
LTS
2022.0.3.85 • 2022.0.3.99
wydana 480 dni temu
Beta
2024.1400.4.1030 •
2024.1400.4.1004
 0.19.0

wydana  4 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
Shoutbox
Wojo (13:15, 13.03.26)
Ja zainstalowałem sobie Linux mint na swoim laptopie :)
Wojo (10:21, 12.02.26)
Tak, po zmianach gmclan przeżywa drugą młodość. Najnowsze trendy wskazują, że ten rok będzie rokiem Linuxa, rokiem odejścia od Facebooka i rokiem odejścia od discorda na rzecz forów internetowych B)
K
Kamilek (21:57, 08.12.25)
Ale klimat tu znowu wrócić! :-D
Wojo (13:03, 07.12.25)
Żeby nie było to jednak discord jest żywy :)
Wojo (12:50, 07.12.25)
Ehh znak czasu. Prawie dwa miesiące ciszy w shoutboxie, na forum też raczej cisza i jest głównie swego rodzaju archiwum ostatnich dwóch dekad
gnysek (16:01, 16.10.25)
To już google decyduje. Mam wrażenie, ze po datach obcina stare treści.
S
Sutikku (10:42, 14.10.25)
Ja jeszcze trafiam na fora jak szukam konkretnych haseł (chociażby wczoraj zepsuty pendrive który się identyfikuje jako Phison 2307 Boot ROM). Teraz projekty opensource często mają społeczności na discordzie i tam jest tona przydatnych informacji ale niedostępna poza discordem. Fajnie by to było wyeksponować
Korodzik (04:24, 14.10.25)
A w sumie to forum się normalnie indeksuje w wyszukiwarkach? Bo ja stwierdziłem, że np. w Google ciężko znaleźć cokolwiek z gmclanowego forum. Większość tematów jest chyba nieindeksowana od dawna...
S
Sutikku (08:44, 13.10.25)
mam niedokończony projekt bota, którego dodaje się do discorda, a on synchronizuje wiadomości z discorda -> na readonly forum. Wtedy treści mogą być indeksowane z wyszukiwarek i łatwo dostępne bez logowania. No ale leży w czyśćcu i czeka.
Wojo (11:52, 11.10.25)
Może kiedyś powróci moda na fora internetowe. Pamiętam w sumie, że czasami aktywność rosła i malała, ale tak pusto to chyba jeszcze nigdy nie było i myślę, że ta cała migracja użytkowników jest zasługą Discorda i zmiany czasów. Po prostu lata dwudzieste spowodowały zmiany trendów w internecie
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?