Da mir aufgefallen ist, dass die wenigsten Leute parents in ihren Spielen verwenden, habe ich mich entschlossen, dieses kleine Tutorial zu schreiben, das die Verwendung von parents beschreibt. Es soll kein Text in der Art "so muss es gemacht werden" sein, sondern eher als kleine Hilfe wie es gehen könnte, gedacht sein.
Was sind Parents?
Ein parent-objet ist ein sehr hilfreiches Mittel in der objektorientierten Programmierung. Ein parent arbeitet so, dass alle seine Eigenschaften an ein/mehrere child-object(e) übergeben werden. Eine solche Verkettung ist in beliebiger Menge und Variation möglich, was erstaunlich einfache Programmierung möglich macht.
Warum sollte man Parents verwenden?
Parents bieten sich aus verschiedenen Gründen an. Einer der wichtigsten Gründe ist, das man einen Code der für mehrere objecte verwendet wird, nur einmal vorhanden ist. Dies vereinfacht es, den Code zu ändern, wenn Fehler vorhanden sein sollten. zuguterletzt spart dies Speicherplatz. Zwar sehr wenig, aber immerhin...
Ich versteh nur Bahnhof...
Beginnen wir also mit einem konkreten Beispiel. Als erstes erstellst du ein neues Spiel im Game Maker. Füge drei neue objecte hinzu und gib ihnen den die Namen "obj_ParentBall", "obj_BallRed" und "obj_BallGreen".
Als nächstes füge dem parent-object "obj_ParentBall" einen draw-event hinzu, in das folgender Code kopiert wird:
Nun wenden wir und den beiden anderen objecten mit den Namen "obj_BallRed" und "obj_BallGreen" zu. Stelle für beide objecte das parent-object ein. Das geht sehr einfach, indem man in den "object properties" im Fensterchen Parent das entsprechende object auswählt.
Erstelle in beiden objecten einen create-event und füge in das object "obj_BallRed" folgenden Code ein:
und in das object "obj_BallGreen" diesen code:
Nun erstelle einen Raum, verteile von den objecten "obj_BallRed" und "obj_BallGreen" einige im Raum und starte das Spiel. Man kann deutlich sehen, dass man nur mit einem create-event unterschiedliche Eigenschaften für objecte erzeugen kann.
Als nächstes erstelle ein weiters object, das den Namen "obj_ParentControl" erhällt. Erstelle einen press-anykey-event und füge folgenden Code ein:
Öffne nun das object "obj_ParentBall" und stelle hier als Parent "obj_ParentControl" ein. Starte das Spiel nocheinmal und drücke eine beliebige taste. Es bewegen sich beide Sorten von Bällen in zufällige Richtungen, obwohl man nur einen key-press event erstellt hat. Man könnte den event auch im object "obj_ParentBall" erstellen, aber ich wollte das beispiel der doppelten verkettung zeigen. Diese doppelte Verkettung wäre z.b. sinnvoll, wenn man noch weitere parents hätte, die ähnlich agieren, aber unterschiedlich aussehen sollen.
Im Anhang ist nochmal das komplette Beispiel (für Game Maker 6.1) falls etwas nicht klappen sollte. Ich hoffe, das ich die Funktionsweise und den Vorteil von Parents einigermassen nahe bringen konnte. In professionellen Spielen ist es gang und gebe Parents zu verwenden, da das Arbeiten sonst einfach zu viel zu umständlich und zu unübersichtlich wäre.
Was sind Parents?
Ein parent-objet ist ein sehr hilfreiches Mittel in der objektorientierten Programmierung. Ein parent arbeitet so, dass alle seine Eigenschaften an ein/mehrere child-object(e) übergeben werden. Eine solche Verkettung ist in beliebiger Menge und Variation möglich, was erstaunlich einfache Programmierung möglich macht.
Warum sollte man Parents verwenden?
Parents bieten sich aus verschiedenen Gründen an. Einer der wichtigsten Gründe ist, das man einen Code der für mehrere objecte verwendet wird, nur einmal vorhanden ist. Dies vereinfacht es, den Code zu ändern, wenn Fehler vorhanden sein sollten. zuguterletzt spart dies Speicherplatz. Zwar sehr wenig, aber immerhin...
Ich versteh nur Bahnhof...
Beginnen wir also mit einem konkreten Beispiel. Als erstes erstellst du ein neues Spiel im Game Maker. Füge drei neue objecte hinzu und gib ihnen den die Namen "obj_ParentBall", "obj_BallRed" und "obj_BallGreen".
Als nächstes füge dem parent-object "obj_ParentBall" einen draw-event hinzu, in das folgender Code kopiert wird:
Nun wenden wir und den beiden anderen objecten mit den Namen "obj_BallRed" und "obj_BallGreen" zu. Stelle für beide objecte das parent-object ein. Das geht sehr einfach, indem man in den "object properties" im Fensterchen Parent das entsprechende object auswählt.
Erstelle in beiden objecten einen create-event und füge in das object "obj_BallRed" folgenden Code ein:
und in das object "obj_BallGreen" diesen code:
Nun erstelle einen Raum, verteile von den objecten "obj_BallRed" und "obj_BallGreen" einige im Raum und starte das Spiel. Man kann deutlich sehen, dass man nur mit einem create-event unterschiedliche Eigenschaften für objecte erzeugen kann.
Als nächstes erstelle ein weiters object, das den Namen "obj_ParentControl" erhällt. Erstelle einen press-anykey-event und füge folgenden Code ein:
Öffne nun das object "obj_ParentBall" und stelle hier als Parent "obj_ParentControl" ein. Starte das Spiel nocheinmal und drücke eine beliebige taste. Es bewegen sich beide Sorten von Bällen in zufällige Richtungen, obwohl man nur einen key-press event erstellt hat. Man könnte den event auch im object "obj_ParentBall" erstellen, aber ich wollte das beispiel der doppelten verkettung zeigen. Diese doppelte Verkettung wäre z.b. sinnvoll, wenn man noch weitere parents hätte, die ähnlich agieren, aber unterschiedlich aussehen sollen.
Im Anhang ist nochmal das komplette Beispiel (für Game Maker 6.1) falls etwas nicht klappen sollte. Ich hoffe, das ich die Funktionsweise und den Vorteil von Parents einigermassen nahe bringen konnte. In professionellen Spielen ist es gang und gebe Parents zu verwenden, da das Arbeiten sonst einfach zu viel zu umständlich und zu unübersichtlich wäre.
Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x