Heim  >  Artikel  >  Web-Frontend  >  Teilen Sie einfache Beispiele für die objektorientierte HTML5-Spieleentwicklung

Teilen Sie einfache Beispiele für die objektorientierte HTML5-Spieleentwicklung

黄舟
黄舟Original
2017-03-16 16:02:561408Durchsuche

Ich habe ein gutes Beispiel gefunden, als ich ein Buch über die HTML5-Spieleentwicklung gelesen habe. Durch dieses Beispiel kann ich ein tieferes Verständnis der objektorientierten-Entwicklung erlangen. Das Ziel dieses Objekts besteht darin, ein Bild in einem CSS-Sprite in Leinwand zu zeichnen. Erstellen Sie zunächst ein SpriteSheet-Objekt. Der Code lautet wie folgt:

var SpriteSheet = new function(){
	this.map = { };
	this.load = function(spriteData,callback){
		this.image = new Image();
		this.image.onload = callback;
		this.image.src = "images/sprites.png";
	};
	this.draw = function(ctx,sprite,x,y,frame){
		var s = this.map[sprite];
		if (!frame) {
			frame = 0;
		};
		ctx.drawImage(this.image, s.sx+frame*s.w, s.sy, s.w, s.h, x, y, s.w, s.h);
	};
}

Verwenden Sie zuerst die neue Funktion (){}, um sicherzustellen, dass nur eine Instanz erstellt wird.

Als nächstes werden innerhalb des Objekts dadurch zwei Methoden und ein Attribut daran gebunden. Die Lademethode dient zum Laden des Bildes und übergibt zwei Parameter. Der erste Parameter sind die Bildinformationen, dh die Position und Größe des im Sprite zu zeichnenden Bildes sowie die Position und Größe auf der Leinwand. Achten Sie auf die Verwendung von Callback. Wenn das Bild geladen wird, wird die übergebene Callback-Funktion ausgeführt.

Die Zeichenmethode wird zum Zeichnen von Bildern verwendet, wobei der Kontext der Leinwand, die Bildobjektinformationen, die gezeichnet werden müssen, und die Bildposition übergeben werden.

Die logische Struktur dieses Objekts ist relativ komplex. Die Grundidee besteht darin, die Lademethode anzupassen und das Laden der Bildinformationen über die Lademethode abzuschließen. Die Bildinformationen beziehen sich hier auf die Position, Größe usw. des Bildes im Sprite.

Der Methodencode zur Verwendung dieses Objekts lautet wie folgt:

function startGame(){
	SpriteSheet.load({
		ship:{sx:0, sy:0, w:18, h:35, frames:3}
	},function(){
		SpriteSheet.draw(ctx,"ship",0,0);
		SpriteSheet.draw(ctx,"ship",100,50);
		SpriteSheet.draw(ctx,"ship",150,100,1);
	});
}
Hier wird die Lademethode verwendet. Zuerst werden die relevanten Daten des erforderlichen Schneidteils übergeben und dann die Das Zeichnen des Objekts wird in der Callback-Funktion zum Zeichnen von Bildern aufgerufen.

Das obige ist der detaillierte Inhalt vonTeilen Sie einfache Beispiele für die objektorientierte HTML5-Spieleentwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn