Private
Public Access
1
0

fix texturen
All checks were successful
Dynamic Branch Deploy / build-and-deploy (push) Successful in 1m23s

This commit is contained in:
Sebastian Unterschütz
2025-12-04 23:21:01 +01:00
parent f97c05a278
commit ae3eb34c0e
2 changed files with 102 additions and 31 deletions

View File

@@ -4,44 +4,60 @@
// ==========================================
// 1. ASSETS LADEN (PIXI V8 KORREKT)
// ==========================================
// ==========================================
// 1. ASSETS LADEN (FEHLERTOLERANT)
// ==========================================
async function loadAssets() {
const keysToLoad = [];
const assetsToLoad = [];
// A. Player hinzufügen
PIXI.Assets.add({ alias: 'player', src: 'assets/player.png' });
keysToLoad.push('player');
// --- 1. REGISTRIEREN (Namen zu Pfaden zuordnen) ---
// B. Hintergründe aus Config
if (gameConfig.backgrounds) {
gameConfig.backgrounds.forEach(bg => {
// Alias = Dateiname (z.B. "school-background.jpg")
PIXI.Assets.add({ alias: bg, src: 'assets/' + bg });
keysToLoad.push(bg);
});
// A. Player
// Prüfen ob schon da, um Warnungen bei Hot-Reload zu vermeiden
if (!PIXI.Assets.cache.has('player')) {
PIXI.Assets.add({ alias: 'player', src: 'assets/player.png' });
assetsToLoad.push('player');
}
// C. Hindernisse aus Config
if (gameConfig.obstacles) {
gameConfig.obstacles.forEach(def => {
if (def.image) {
// Alias = ID (z.B. "teacher")
// Checken ob Alias schon existiert (vermeidet Warnungen)
if (!PIXI.Assets.cache.has(def.id)) {
PIXI.Assets.add({ alias: def.id, src: 'assets/' + def.image });
keysToLoad.push(def.id);
}
// B. Hintergründe
if (gameConfig.backgrounds) {
gameConfig.backgrounds.forEach(bg => {
if (!PIXI.Assets.cache.has(bg)) {
PIXI.Assets.add({ alias: bg, src: 'assets/' + bg });
assetsToLoad.push(bg);
}
});
}
try {
console.log("Lade Assets...", keysToLoad);
// Alles auf einmal laden
await PIXI.Assets.load(keysToLoad);
console.log("✅ Alle Texturen geladen!");
} catch (e) {
console.error("❌ Asset Fehler:", e);
// C. Hindernisse
if (gameConfig.obstacles) {
gameConfig.obstacles.forEach(def => {
if (def.image && !PIXI.Assets.cache.has(def.id)) {
PIXI.Assets.add({ alias: def.id, src: 'assets/' + def.image });
assetsToLoad.push(def.id);
}
});
}
// --- 2. LADEN (Mit Fehler-Abfangung) ---
console.log(`Lade ${assetsToLoad.length} Assets...`);
// Wir erstellen für jedes Asset einen eigenen Lade-Versuch
const loadPromises = assetsToLoad.map(key => {
return PIXI.Assets.load(key)
.catch(err => {
// HIER IST DER TRICK:
// Wenn ein Fehler passiert, loggen wir ihn, aber werfen ihn NICHT weiter.
// Wir geben einfach null zurück. Damit gilt dieser Task als "erledigt".
console.warn(`⚠️ Asset Fehler bei '${key}': Datei fehlt oder defekt.`);
return null;
});
});
// Wir warten, bis ALLE Versuche durch sind (egal ob Erfolg oder Fehler)
await Promise.all(loadPromises);
console.log("✅ Ladevorgang abgeschlossen (vorhandene Assets sind bereit).");
}
// ... (Rest der Datei: startGameClick, gameLoop etc. BLEIBT GLEICH)