Ich habe ein Problem mit der Anzeige von Bildern im Canvas. Ich verstehe nicht, warum nur ein Bild gerendert wird (Hintergrund in diesem Fall). Hier ist mein Code:Laden mehrerer Bilder in Canvas
// ... Some code here
this.createBackground(canvas, config);
this.createPlayer(canvas, config);
}
createBackground(element, config) {
const canvas = element;
const ctx = canvas.getContext("2d");
const bg = new Image();
bg.src = "./img/" + config.bg;
bg.onload =() => {
ctx.drawImage(bg, 0, 0, config.width, config.height);
}
return bg;
}
createPlayer (element, config) {
const canvas = element;
const ctx = canvas.getContext("2d");
const player = new Image();
player.src = "./img/" + config.character + "/Run1.png";
player.onload =() => {
ctx.drawImage(player, 70, 310, player.width/3, player.height/3);
}
return player;
}
Warum mein Player nicht in Leinwand nach bg-Methode angezeigt wird?
Ihr Hintergrund ist wahrscheinlich größer, deshalb lädt sie normalerweise etwas länger und wird zuletzt gezogen, den Rest abdeckend. – ASDFGerte
Ich dachte darüber nach, also könnte es wahr sein. Mein bg ist ungefähr 125kb und Spieler ist ungefähr 45kb. –
Ihre Art, Bilder nach dem Laden zu zeichnen, ist atypisch und führt zu diesen Problemen. Zeichnen Sie Bilder in einer festgelegten Reihenfolge und stellen Sie sicher, dass alle zuvor geladen wurden. – ASDFGerte