Den Game Maker benutzen
Ereignisse
Der Game Maker ist ereignisgesteuert. Das funktioniert so: Wann immer etwas im Spiel geschieht, erhalten die Instanzen der Objekte Ereignisse (events). Die Instanzen können dann auf diese Ereignisse reagieren, indem sie bestimmte Aktionen (actions) auslösen. Für jedes Objekt muss fest gelegt werden, auf welche Ereignisse es reagiert und welche Aktionen ausgeführt werden sollen, wenn dieses Ereignis eintritt. Das hört sich kompliziert an, ist tatsächlich aber ganz einfach. Zuerst einmal müssen die Objekte für die meisten Ereignisse nichts machen. Für die Ereignisse, in denen Aktionen gefordert sind, steht ein simples "Drag&Drop-System" zur Verfügung, worin die entsprechenden Aktionen zugeordnet werden können.In der Mitte der "object property form" (Eingabemaske der Objekteigenschaften) befindet sich eine Liste der Ereignisse (events), auf die das Objekt reagieren muss. Anfangs ist sie leer. Du kannst Ereignisse hinzufügen, indem du auf den Add event Knopf klickst. Ein kleines Auswahlmenü mit den diversen Ereignissen klappt auf. Hier kannst du das Ereignis auswählen, welches du hinzufügen möchtest. Manchmal klappt noch ein zusätzliches Menü auf, mit weiteren Auswahlmöglichkeiten. Beispielsweise musst du für ein "keyboard event" die Taste (key) festlegen. Weiter unten wird aufgelistet welche Ereignisse es gibt plus Beschreibung. Ein Ereignis wird aus der Liste ausgewählt. Dieses ist es, welches wir momentan bearbeiten. Um ein anderes anzuwählen, klicke es einmal mit der Maus an. Rechts befinden sich die ganzen Aktionen (actions), welche durch kleine Icons dargestellt werden. Sie sind in mehrere Gruppen unterteilt. Im nächsten Kapitel werden sie beschrieben. Das Feld zwischen der Ereignisliste und den Aktionen ist die Aktionsliste (action list). Hier werden die Aktionen für das angewählte Ereignis festgelegt. Um eine Aktion hinzuzufügen, ziehe sie (das Icon) mit der Maus einfach rüber in diese Liste. Sie werden mit einer Kurzbeschreibung untereinander einsortiert. Für jede Aktion werden einige Parameter erwartet. Dies wird auch im nächsten Kapitel erläutert. Wenn nun einige Aktionen hinzugefügt wurden, sieht die Situation wie folgt aus:
Jetzt kannst du anfangen Aktionen anderen Ereignissen zuzuordnen. Klicke mit der linken Maustaste auf das entsprechende Ereignis, um es auszuwählen und ziehe die Aktionen in die jeweilige Liste.
Du kannst die Sortierung der Liste per "Drag-and-Drop" ändern. Wenn du die <Alt> Taste während des Ziehens gedrückt hälst, machst du eine Kopie der Aktion. Du kannst sogar zwischen den "action"-Listen verschiedener Objekte "Drag-and-Drop" verwenden. Wenn du eine Aktion mit der rechten Maustaste anklickst erscheint ein Menü, in welchem du die gewählte Aktion löschen (Dies kann auch mit der <Entf> Taste gemacht werden), kopieren oder ausschneiden kannst. (Du kannst zum Ausschneiden, Kopieren oder Löschen mehrere Aktion auswählen, indem du die <Shift> oder <Strg> Taste gedrückt hälst. Drücke <Strg><A> um alle Aktionen auszuwählen.) Wenn du den Mauszeiger länger über eine Aktion hälst erscheint eine längere Beschreibung dieser Aktion. Für mehr Informationen über Aktionen lese im nächsten Kapitel weiter.
Um das momentan markierte Ereignis zusammen mit all seinen Aktionen zu löschen, drücke den Delete Knopf. (Ereignisse ohne irgendwelche Aktionen in ihrer Liste werden automatisch beim Schließen der Eingabemaske entfernt, sodass man sie nicht extra von Hand aussortieren muss.) Wenn du die Aktionen einer Liste einem anderem Ereignis zuweisen willst (weil du Dich vielleicht für eine andere Taste entschieden hast), drücke einfach den Knopf Change und wähle ein anderes Ereignis. (Das neue Ereignis sollte nicht schon definiert sein!) In dem du das Menü benutzt, welches bei einem Rechtsklick auf ein Ereignis erscheint, kannst du ein Ereignis duplizieren, d.h. ein neues Ereignis mit denselben Aktionen hinzufügen.
Wie oben erwähnt erscheint folgendes Auswahlmenü, wenn du auf den Add event Knopf drückst:
Hier wählst du das hinzuzufügende Ereignis aus. Bei manchen erscheint ein weiteres Menü, mit zusätzlichen Auswahlmöglichkeiten. Hier folgt eine Beschreibung der unterschiedlichen Ereignisse (Erinnere dich daran, dass man üblicherweise nur einige wenige verwendet).
Create event
Dieses Ereignis wird ausgelöst, wenn eine Instanz eines Objektes
erzeugt wird. Gewöhnlich verwendet man es, um die Instanz in
Bewegung zu setzen oder bestimmte Variablen der Instanz zu festzulegen.
Destroy event
Es wird ausgelöst, wenn die Instanz zerstört wird. Um genau
zu sein - kurz vorher. Was bedeutet, dass die Instanz noch
existiert, wenn das Ereignis ausgeführt wird! Die meiste Zeit
über wird dieses Ereignis nicht verwendet aber man kann es
beispielsweise nutzen, um den "score" (Punktestand) zu ändern oder
ein anderes Objekt zu erschaffen.
Alarm events
Jede Instanz besitzt 12 Alarmuhren. Du kannst diese Alarmuhren durch
verschiedene Aktionen einstellen (siehe nächstes
Kapitel). Die Alarmuhr tickt dann runter bis sie 0 erreicht und in
diesem Moment das "alarm event" auslöst. Um die Aktionen
für eine Alarmuhr anzuzeigen, musst du sie zuerst im Menü
anwählen. "alarm clocks" sind sehr nützlich. Du kannst sie
verwenden, um gewisse Dinge von Zeit zu Zeit geschehen zu lassen.
Beispielsweise kann ein Monster seine Bewegungsrichtung alle
20 "steps" ändern (in so einem Fall muss eine Aktion innerhalb des
Ereignises die Alarmuhr wieder neu stellen).
Step events
Das "step event" wird bei jedem "step" (Schritt) des Spiels
ausgelöst. Hier kannst du Aktionen platzieren, die kontinuierlich
ausgeführt werden müssen. Beispielsweise wenn ein Objekt
einem anderen folgen soll, kannst du hier die Bewegungsrichtung des
Verfolgers angleichen. Sei trotzdem vorsichtig mit diesem Ereignis.
Packe nicht zu viele komplizierte Aktionen in die "step
events" von Objekten, von welchen viele Instanzen vorhanden sind. Das
könnte das Spiel verlangsamen. Um genau zu sein - es
gibt drei verschiedene "step events". Normalerweise braucht man nur das
voreingestellte. Aber mittels des Menüs kann man auch
die Anderen verwenden ("begin step" (Schrittanfang) und "end step"
(Schrittende)). Das "begin step"-Ereignis wird am Anfang
eines Schrittes ausgelöst, bevor andere Ereignisse auftreten. Das
voreingestellte/normale "step event" wird ausgelöst, kurz
bevor die Instanzen auf ihre neuen Positionen gesetzt werden. Das "end
step"-Ereignis wird am Endes eines Schrittes ausgelöst,
kurz bevor gezeichnet wird. Es wird üblicherweise benutzt, um
beispielsweise das "sprite" in Abhängigkeit von der
Bewegungsrichtung zu ändern.
Collision events
Wann immer zwei Instanzen kollidieren (das geschieht, wenn ihre
"sprites" überlappen), wird ein "collision event" ausgelöst.
Genauer zwei - eins pro Instanz. Die Instanz kann auf dieses Ereignis
reagieren. Wähle im Menü aus, bei welchem Objekt du ein
Kollisionsereignis definieren willst. Danach platziere hier weitere
Aktionen.
Es gibt Unterschiede was passiert, wenn Instanzen mit soliden bzw. nicht-"soliden" Objekten kollidieren. Zuerst einmal, wenn keine Aktionen im Kollisionsereignis definiert sind, passiert nichts. Die Instanz bewegt sich einfach weiter, auch wenn das andere Objekt "solid" ist. Wenn das Kollisionsereignis Aktionen enthält geschieht folgendes:
Wenn das andere Objekt "solid" ist, wird die an ihre vorherige Position Instanz (vor der Kollision) zurückgesetzt. Dann erst wird das Ereignis ausgelöst. Anschliessend wird die Instanz an die neue Position bewegt. Wenn das Ereignis beispielsweise die Bewegungsrichtung umkehrt, prallt die Instanz gegen die Wand, ohne anzuhalten. Wenn dann immer noch eine Kollision vorliegt, wird die Instanz an der vorherigen Stelle gehalten. Sie hält effektiv an.
Wenn das andere Objekt nicht "solid" ist, wird die Instanz nicht zurückgesetzt. Das Ereignis wird einfach ausgelöst mit der Instanz an der aktuellen Position. Auch gibt es keine 2. Kollissionsabfrage. Wenn du darüber nachdenkst, ist es die logische Konsequenz, die eintreten sollte. Weil das andere Objekt ja nicht "solid" ist, kann es einfach durchquert werden. Das Ereignis informiert dich also darüber, dass dieses gerade geschehen ist.
Es gibt viele Anwendungsmöglichkeiten für das "collision event". Instanzen können es verwenden, um von Wänden abzuprallen. Du kannst es einsetzen, um Objekte zu vernichten, wenn sie z. B. von einer Kugel getroffen werden - und so weiter.
Keyboard events
Wenn der Spieler eine Taste drückt, wird ein Tastaturereignis
für alle Instanzen aller Objekte ausgelöst. Für jede
Taste ein
anderes Ereignis. Im Menü kannst du die Taste bestimmen, für
die du ein Tastaturereignis festlegen willst und anschliessend
die Aktionen hinüberziehen. Klar ausgedrückt brauchen nur
wenige Objekte solche Ereignisse für wenige Tasten.
Ein Ereignis wird in jedem Schritt (step) erzeugt, solange der Spieler
die Taste drückt. Es gibt zwei besondere Tastaturereignisse.
Eines heißt <No key> (keine Taste). Es wird in jedem
Schritt erzeugt, falls keine Taste gedrückt ist. Der zweite ist
<Any key> (jede Taste)
awas bei beliebigem Tastendruck ausgelöst wird. Wenn der Spieler
mehrere Tasten drückt, wird für jede Taste ein Ereignis
ausgelöst.
Beachte, dass die Ereignisse des Ziffernblocks nur die
korrespondierenden sind, wenn <NumLock> aktiviert ist.
Mouse events
Ein "mouse event" wird immer dann für eine Instanz ausgelöst,
wenn der Mauszeiger innerhalb dessen Sprite positioniert ist.
Abhängig von der Maustaste erhälst du ein "no button"(keine
Taste), ein "left button"(linke Maustaste), ein "right
button"(rechte Maustaste) oder ein "middle button"(mittlere Maustaste)
Ereignis. Die Ereignisse werden in jedem Schritt
erzeugt, solange der Spieler die Taste drückt. Die "press events"
(Taste drücken) werden nur einmal beim Herunterdrücken der
Taste erzeugt. Die "release events" (Taste loslassen) nur beim
Loslassen der Taste. Beachte, dass diese Ereignisse nur
auftreten, wenn der Mauszeiger über der Instanz ist. Wenn diese
Ereignisse für beliebige Mauspostionen gelten sollen, verwende
die globalen "press/release" Ereignisse stattdessen. Es gibt zwei
besondere Mausereignisse. Das "mouse enter" (Beginn der
Überdeckung) Ereignis und das "mouse leave" (Verlassen der
Überdeckung) Ereignis. Ersteres wird beim "Berühren" der
Instanz
ausgelöst, letzteres, wenn der Mauszeiger die Zone über der
Instanz verlässt. Diese Ereigisse werden üblicherweise
genutzt, um
das Sprite zu ändern oder einen SFX zu erzeugen.
Mouse wheel up und Mouse wheel down Events werden ausgeführt, wenn der Benutzer das Mausrad dreht.
Schliesslich gibts noch Ereignisse für Steuerknüppel (Joysticks). Du
kannst
Aktionen für die 4 Richtungen angeben (diagonal werden beide
Ereignisse ausgelöst). Bis zu 8 Knöpfe können verwaltet
werden.
Du kannst all das für 2 Spielgeräte verwenden (1. und 2.
Steuerknüppel).
Other events
Es gibt eine Anzahl anderer Ereignisse, welche in bestimmten Spielen
nützlich sind. Man findet sie in diesem Menü. Folgende
Ereignisse können hier gefunden werden:
- Outside: Dieses Ereignis wird ausgelöst, wenn die Instanz komplett ausserhalb des Raumes liegt. Typischerweise ein guter Moment, sie zu vernichten.
- Boundary: Dieses Ereignis wird ausgelöst, wenn die Instanz die Grenze des Raumes berührt.
- Game start: Dieses Ereignis wird für alle Instanzen des ersten Raumes ausgelöst, wenn das Spiel beginnt. Es wird vor dem "room start event" (siehe unten) aber nach dem "creation event" für die Instanzen innerhalb des Raumes. Es wird typischerweise nur in einem "Steuerungsobjekt" verwendet, um Hintergrundmusik zu starten oder Variablen zu initialisieren oder ein paar Daten zu laden.
- Game end: Dieses Ereignis wird für alle Instanzen am Ende des Spiels ausgelöst. Auch dieses wird in einem Objekt verwendet. Es wird verwendet, um beispielsweise Spieldaten zu speichern.
- Room start: Dieses Ereignis wird am Anfang eines Raumes für alle Instanzen ausgelöst. Es geschieht nach den "creation events".
- Room end: Wird für alle existierenden Instanzen am Ende des Raumes ausgelöst.
- No more lives: Game Maker hat ein eingebautes Lebenssystem. Es gibt eine Aktion um die Anzahl der "lives" ("Leben"), zu setzen und zu verändern. Wann immer dieser Wert auf 0 sinkt (oder tiefer), wird dieses Ereignis ausgelöst. Es wird benutzt, um das Spiel zu beenden oder neu zu starten.
- No more health: Game Maker hat ein eingebautes Lebensenergie. Es gibt eine "action", um diesen Wert zu setzen und zu verändern. Wann immer dieser Wert auf 0 oder weniger sinkt, wird dieses Ereignis ausgelöst. Es wird normalerweise verwendet. um die Anzahl der "lives " zu reduzieren oder das Spiel zu neu zu starten.
- End of animation: Wie oben erwähnt, besteht eine Animation aus einer Anzahl Einzelbilder, welche nacheinander angezeigt werden. Wenn das Letzte angezeigt wurde beginnt es wieder von vorne. Das Ereignis wird genau hier ausgelöst. Es kann verwendet werden, um die Animation zu ändern oder die Instanz zu vernichten.
- End of path: Dieses Ereignis wird ausgelöst, wenn die Instanz einem Pfad (path) folgt und an dessen Ende angelangt.
- User defined: Es gibt 16 dieser Ereignisse. Sie werden normalerweise nie ausgelöst, solange du sie nicht via Programmcode auslöst.
Drawing event
Instanzen, wenn sie sichtbar sind, zeichnen ihr Sprite in jedem "step"
auf den Bildschirm. Wenn du Aktionen im "drawing
event" definierst, wird das sprite nicht gezeichnet aber stattdessen
die Aktionen ausgeführt. Das kann verwendet werden, um
etwas anderes, als das Sprite zu zeichnen oder erst die Parameter des
Sprite zu ändern. Es gibt eine Anzahl von "drawing
actions" welche extra für das "drawing event" bestimmt sind.
Beachte, dass das "drawing event" nur ausgelöst wird, wenn das
Objekt sichtbar ist. Beachte auch, das unabhängig von dem was du
darstellst, Kollisionsereignisse auf dem zugehörigen Sprite
basieren.
Key press events
Dieses Ereignis ist dem Tastaturereignis ähnlich. Es wird
ausgelöst beim Runterdrücken der Taste anstatt permanent bei
Tastendruck. Es ist
nützlich, wenn du nur einmal etwas bei Tastendruck geschehen
lassen willst.
Key release events
Dieses Ereignis ist dem Tastaturereignis ähnlich. Es wird
ausgelöst beim Loslassen der Taste anstatt permanent bei
Tastendruck.
In manchen Situationen ist es wichtig zu wissen, wie der Game Maker Ereignisse verarbeitet. Dies läuft so ab:
- Begin step events
- Alarm events
- Keyboard, Key press, and Key release events
- Mouse events
- Normal step events
- (nun werden alle Instanzen an ihre Positionen gesetzt)
- Collision events
- End step events
- Drawing events
Die creation, destroy und anderen Ereignisse werden ausgelöst, wenn die korrespondierenden Umstände eintreten.
Alternative Versionen
Auch verfügbar in:
Download helpfile