Donnerstag, 27. März 2014

Mit Eltern Objekten Arbeiten

Vererbungs Beispiel
Heute möchte ich eine tolle Funktion des Game Makers 8 vorstellen. Es ist das Vererben. Man muß sich das so Vorstellen. Ich erstelle ein Objekt obj_Enemy. Dieses Objekt beherbergt alle wichtigen Events wie z.B. das wenn man es zerstört, der Spieler Punkte bekommt oder eine Explosion entsteht. Im Grunde können in das obj_Enemy alle Events hinein, die wir sowieso in jedes Enemy-Objekt einfügen würden. Wenn unser obj_Enemy fertig ist, kommt der eigentliche Clou. Wir erstellen zwei weitere Objekte z.B. obj_EnemyShip1 und obj_EnemyShip2. Wenn wir eines der Objekte zum bearbeiten öffnen, ist direkt unter der Depth-Einstellung bzw über der Mask Auswahl das Feld für Parent (Eltern). Hier wählen wir für unser obj_EnemyShip1 und obj_EnemyShip2 das Objekt obj_Enemy. Auf diese weise bekomme
nun unsere zwei Objekte die Events von Ihrem "Eltern-Objekt" also obj_Enemy. Auch wenn die Eventliste unserer beiden Objektet leer zu sein scheinen, sie haben die Events von Ihrem Eltern-Objekt.
Jetzt können wir jeden unsere zwei Objekte zusätzliche/besondere Events Anhängen wie z.B. Bewegungsverhalten und Feuerkraft, die diese Individuell machen. Vorteil ist, daß man z.B. Kollisionen jetzt nicht mit dem Objekt A,B,C...n definieren muss, sondern nur mit den obj_Enemy. Was eine Menge an Code spart. Wenn sich das Grundverhalten der Obj_EnemyShip1 & 2 und vielleicht 3 ändern soll. So braucht man nicht alles doppelt und dreifach zu machen, sondern nur das obj_Enemy ändern.

So ich finden das diese Einführung erstmal reichen sollte. Ich würde mich sehr über Anregungen für weitere Themen freuen.

Sonntag, 23. März 2014

Der coolste kostenlose Sprite Editor: aseprite Animated sprite editor & pixel art tool

Bester kostenlose Sprite Editor

Heute möchte ich euch einen Super Sprite Editor vorstellen. Der aseprite (Animated sprite editor) ist schnell zu erlernen und Intuitiv zu bedienen. Ich benutze um meine Grafiken zu erstellen mittlerweiler fast nur noch diesen. Zu finden ist dieser auf der Homepage http://www.aseprite.org/. Ein Wiki sowie ein Blog sind auf der Seite ebenfalls zu finden. Die PDF-Referenz zu diesem tollen Sprite-Tool findet Ihr auf http://www.aseprite.org/quickref.pdf.


Freitag, 21. März 2014

Game Maker 8 - Anfänger Tutorial

Hallo zusammen, habe  ein schönes Tutorial gefunden. Eine kurze PDF-Datei für Leute, die noch nie etwas mit dem Game Maker 8 zu tun hatten.

Im eBuch wird die Installation von Game Maker 8 beschrieben und wie man dann sein ersten Spielchen erstellt.

Das tolle ist, daß es auch mit der kostenlosen Lite Version funktioniert.
Leider sollte man Englisch-Grundlagen mitbringen.

Hier der Link

Würde mich sehr über Anregungen auf bestimmte Themen freuen.Schreibt mir einfach auf mein Google Konto.

Desweiteren wünsche ich allen ein schönes Wochenende.

Donnerstag, 20. März 2014

Zugreifen auf Variablen anderer Instanzen

Erstellen einer Instanz aus einer anderen Instanz. Gleich darauf sollen die Variablen der Neuen Instanz verändert werden.


var my_instanceID;
my_instanceID = instance_create(320, 200, obj_enemy);
my_instanceID.speed = 10;
my_instanceID.direction = random(360);



Bei diesem Beispiel wird in der ersten Zeile unsere Variable angelegt, in der wir uns die ID der Neu erstellten Instanz zwischenspeichern.
In der zweiten Zeile erstellen wir an den Koordinaten x=320,y=200 eine Instanz vom Objekt obj_enemy und Speichern Ihre InstanzIdentifizierungsNummer (InstanzID) in die Variable my_instanceID.
In den Zeilen 3 und 4 wird verdäutlicht, wie man die Werte der neu erstellten Instanz Verändern kann.
Dabei wird der InstranzID gefolgt von einem Punkt (.) und der Instanz Variable der jeweilige Wert definiert.

Die InstanzID ist eine Individuelle Adresse einer Objekt-Instanz. Würde den wert der Variable my_instanceID ausgeben, könnte das Ergebniss soetwas sein: (16040)

Wir könnten jetzt auch anstatt der Variable dierekt die ID der Instanz eingeben. Das würde dann etwa so aussehen:

(16040).speed = 10;
(16040).direction = random(360);


Die Werte von bereits vorhandenen Instanzen verändern.


Um die Werte einer Instanz im Spielfeld zu ändern, muß man diese ers finden. Dazu gibt es in Game Maker mehrer Möglichkeiten. Eine ist es alle Instanzen zu durchsuchen:

with(o_Enemy) {
speed += 5;
}:

Mit dieser "Schleife" wird die Geschwindigkeit um 5 für jede Instanz der Objekts o_Enemy erhöht.

Eine Andere möglichkeit ist es ein Objekt in der Nähe von x,y Koordianten zu finden.
Dazu kann man den Befehl instance_nearest(x,y,obj) benutzen.

Weitere Insteressante Instanz Befehle


instance_find(obj,n)
instance_exists(obj)
instance_number(obj)
instance_position(x,y,obj)
instance_nearest(x,y,obj)
instance_furthest(x,y,obj)
instance_place(x,y,obj) 

instance_create(x,y,obj)
instance_copy(performevent)
instance_destroy()
instance_change(obj,perf)
position_destroy(x,y)
position_change(x,y,obj,perf)

Wichtiger Nachtrag:
Wenn die Variable in Instanz A aus einer Instanz B angesprochen werden soll, dann darf Sie auch nicht in mit dem Befehl "var" initialisiert werden. Denn dann ist diese nur innerhalb den Scripts/Events gültig. Stattdessen sollte die Variable einfach mit Variable=Wert definiert werden.

Was ich vor kurzem herausgefunden habe, man kann Variablen Werte auch wie in der programmier Sprache C zuweisen, indem man zB Variable:=Wert benutzt. Das kann bei der Übersichtlichkeit helfen.