JavaScript Sub-Klassen und Auswahl dieser Klassen

Gamer Xy1

Cadet 3rd Year
Registriert
Dez. 2009
Beiträge
39
Hallo zusammen,
ich arbeite gerade an einem "kleinen" HTML5-canvas-Projekt, um ein Bisschen Übung beim Umgang mit dem canvas-Element zu bekommen...
Inzwischen ist dieses "kleine" Projekt ziemlich ausufernd geworden, sodass ein simples Spiel daraus geworden ist...
Dafür habe ich mehrere "Elemente" definiert:
Code:
var elem1 = {
x: 0,
y: 0,
actv: false};
var elem2 = {
x: 0,
y: 0,
actv: false};

Das is ganz praktisch, da ich dann einfach z.B. per elem1.x auf den Wert zugreifen kann...
Mein Problem ist jetzt aber, dass ich ca. 20 dieser Elemente habe.
Wenn ich jetzt einen Schuss auf ein beliebiges Objekt verarbeiten will, muss ich das für alle Objekte einzeln schreiben, d.h. 20 if-Schleifen...
Wie wir alle wissen ;) ist unnötig großer Quellcode extrem lästig, deshalb dachte ich, es müsste doch möglich sein, diesen Elementen eine Klasse (z.B.) zuzuweisen...
Die Verarbeitung davon wäre dann ungefähr:
Code:
if(Klasse-Schuss-Objekt trifft Klasse-Gebäude-Objekt){
deaktiviere DIESES Schusselement
Neuer Leben-Wert DIESES Gebäude-Objekts = Gebäude.Lebenbisher - DIESERSchuss.Schaden
}

Könntet ihr mir, falls es sowas gibt, einen Vorschlag schreiben, wie ich diese Klasse machen kann und wie dann die Verarbeitung aussehen könnte?

Schonmal im Voraus vielen Dank für Eure Mühe & Zeit

Liebe Grüße
GamerXy1
 
edit: Irgendwie hats die Formatierung zerhauen... Nochmal:

1. Es gibt keine If-Schleifen
2. Erstell dir eine Klasse Liste und schreib eine Methode dafür.

Quick n Dirty:
Code:
function List()
{
	this.Data = [];
}

List.prototype.Add = function( Obj ) { this.Data.push( Obj ); }
List.prototype.IsExistent = function( Property, Value )
{
	for( var i in this.Data )
		if( this.Data[i][Property] == Value )
			return true;
	return false;
}

var a = new List();
a.Add( {a: 1, b: 'a', c: '3'} );
a.Add( {a: 2, b: 'b', c: '3'} );
a.Add( {a: 3,b: 'c', c: '3'} );
a.Add( {a: 4,b: 'd', c: '3'} );
a.Add( {a: 5,b: 'e', c: '3'} );
a.Add( {a: 6,b: 'f', c: '3'} );
a.Add( {a: 7,b: 'g', c: '3'} );
a.Add( {a: 8,b: 'h', c: '3'} );
a.Add( {a: 9,b: 'i', c: '3'} );
a.Add( {a: 10,b: 'j', c: '3'} );
a.Add( {a: 11,b: 'k', c: '3'} );
a.Add( {a: 12,b: 'ab', c: '3'} );

console.debug( a.IsExistent( 'a', 0 ) );
console.debug( a.IsExistent( 'a', 1 ) );
console.debug( a.IsExistent( 'a', 11 ) );
console.debug( a.IsExistent( 'a', 13 ) );
console.debug( a.IsExistent( 'b', 'a' ) );
console.debug( a.IsExistent( 'b', 'b' ) );
console.debug( a.IsExistent( 'b', 'r' ) );
console.debug( a.IsExistent( 'b', 'y' ) );
console.debug( a.IsExistent( 'b', 'ab' ) );
console.debug( a.IsExistent( 'b', 'cd' ) );
 
Zurück
Oben