Marius Heil
Erfahrenes Mitglied
Hallo,
ich schreibe gerade mein Jump and Run von AS2 nach AS3 um. Das Spiel unterstützt eine Vielzahl von Materialien wie Luft, Wasser, Boden, Eis, etc...
Ich habe bisher folgenden Aufbau:
Die Character Klasse verwaltet Bewegung und Kollision
Die World Klasse verwaltet das komplette Level
Die Tile Klasse beinhaltet einen MC der den korrekten Block anzeigt
Jetzt ergibt sich folgendes Problem: Soll ich eine Material Klasse erstellen von er für jedes Material eine neue Instanz erzeugt wird, die Instanzen in einem Array speichern und von der Tile Klasse darauf referenzieren....
oder
Soll ich in der Tile-klasse ein Objekt erzeugen in welchem alle Materialinformationen abgelegt werden.
Mir geht es zum einen um die korrekte Struktur, da ich noch nciht so lange Objektorientiert programmiere besteht da noch Lernbedarf. Andererseits aber auch um die Effizienz: Wenn ich jedes mal ein Objekt erzeuge muss das immer mit allen Variablen gefüllt werden. Wenn ich eine eigene Klasse nehme kann ich die final machen und die Variablen existieren bereits alle mit Typendefinition.
Hier der Anfang meiner Materialklasse:
Wie mach ich das eigentlich möglichst Tippeffizient? Bei dem Ansatz muss ich jetzt im Konstruktor für jede Variable den Typ angeben (dopplung) und dann schreiben this.mcFrame = mcFrame;
Das kommt mir etwas arg kompliziert vor, geht das einfacher?
Viele Grüße
ich schreibe gerade mein Jump and Run von AS2 nach AS3 um. Das Spiel unterstützt eine Vielzahl von Materialien wie Luft, Wasser, Boden, Eis, etc...
Ich habe bisher folgenden Aufbau:
Die Character Klasse verwaltet Bewegung und Kollision
Die World Klasse verwaltet das komplette Level
Die Tile Klasse beinhaltet einen MC der den korrekten Block anzeigt
Jetzt ergibt sich folgendes Problem: Soll ich eine Material Klasse erstellen von er für jedes Material eine neue Instanz erzeugt wird, die Instanzen in einem Array speichern und von der Tile Klasse darauf referenzieren....
oder
Soll ich in der Tile-klasse ein Objekt erzeugen in welchem alle Materialinformationen abgelegt werden.
Mir geht es zum einen um die korrekte Struktur, da ich noch nciht so lange Objektorientiert programmiere besteht da noch Lernbedarf. Andererseits aber auch um die Effizienz: Wenn ich jedes mal ein Objekt erzeuge muss das immer mit allen Variablen gefüllt werden. Wenn ich eine eigene Klasse nehme kann ich die final machen und die Variablen existieren bereits alle mit Typendefinition.
Hier der Anfang meiner Materialklasse:
PHP:
public class Material {
public var mcFrame:uint; //Graphical Representation
public var name:String; //Name of Material
public var type:String; //Type (gas, fluid, hard)
public var gravity:Number;
public var friction:Number;
public var xAcceleration:Number;//Possible acceleration in x-direction
public var yAcceleration:Number;//according to above
public var xSpeedMax:uint; //Max Speed in x-direction
public var ySpeedMax:uint; //s.o.
public var enterLeft:Boolean; //Collision when Entering from Left
public var enterRight:Boolean; //..
public var enterTop:Boolean; //..
public var enterBottom:Boolean; //..
public var kills:Boolean; //Die on Entering Material
public var isBottom:Boolean; //1px under character, able to jump
public var inFront:Boolean; //Before Character
public var trigger: String; //Special Trigger for spawn, exit, vanish, etc...
public function Material(mcFrame:uint, ) {
}
}
Das kommt mir etwas arg kompliziert vor, geht das einfacher?
Viele Grüße