• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Hilfe bei zeichnen auf Canvas mit Array Objekten.

Dantalion

New member
Hallo,

Ich bin beim Zeichnen auf ein Canvas mit Objekten aus einem Array auf ein Problem gestoßen, auf dessen Lösung ich einfach nicht komme.
Es soll ein Image auf einen zufälligen Punkt in ein Canvas gezeichnet werden. Soweit kein Problem. Hat alles auf Anhieb funktioniert. Als ich dann aber ein Objekt deklariert habe um Größe, X und Y Koordinate in diesem zu speichern (welche ich in einem Array sichere) wurde auf einmal nichts mehr gezeichnet.

Code:
function Init() {

	var gameAmbientMusic = document.getElementById("gameTrack");
	
	gameAmbientMusic.play();
	
	popUp.style.display = "none";

	var bugSpawn = setInterval(spawnBug, 5000);
	var bugMove = setInterval(moveBug, 1000);

	scrollBackgroundInfinite();
}

Meine init Funktion die am Anfang aufgerufen wird.


Code:
function spawnBug() {

	if (bugArray.length < 5) {

		var bugImage = new Image();

		bugImage.src = "./images/bug.png";
		bugImage.style.position = 'relative';

		bugObj = new BugObject(randomPosition()[1], randomPosition()[0], randomSize());

		canvasContext.drawImage(bugImage, bugObj.posX, bugObj.posY, bugObj.size,
				bugObj.size);
		bugArray[bugArray.length] = bugObj;
	}

}

Die Funktion um die eigentlichen Bilder zu zeichnen.

Code:
function BugObjext(posX,posY,size) {
	
	    this.posX = posX;
	    this.posY = posY;
	    this.size = size;
	}

Und das Objekt für Position und Größe, damit ich die "Figuren" eben später auch neu zeichnen bzw. bewegen möchte, was auch schon funktioniert hat aber eben ohne Objekt und Array.

Vielleicht übersehe ich auch einfach etwas Offensichtliches.

Danke für Antworten!
 
Ja hatte den Fehler in der Zwischenzeit auch gefunden. Wurde aus der Fehlerkonsolenausgabe erst nicht schlau, da ich beim Überprüfen des Objekts einfach das x irgendwie nicht wahrgenommen habe denke ich... Komplett ausgeblendet....

Trotzdem danke für die Antwort und sorry für den überaus dummen Thread....
 
jshint weißt einem auf so etwas hin.

PS: anscheinend liefert randomPosition() ein Array. Du verwendest da aber immer nur ein Element davon und rufst die Funktion dann nochmal auf... das ist nicht besonders performant.
 
Zurück
Oben