2017-12-13 1 views
0

Ich versuche, dynamisch erstellte Bilder aus einer JSON-Datei in mein Phaser-Projekt zu laden. die Objekte innerhalb des Arrays alle haben den Schlüssel „name“ mit einem entsprechenden Wert von „Box“ + Anzahlphaser.js - Laden von Bildern in Schleife führt zu "Schlüssel nicht im Cache gefunden"

ich sie in das preloader wie so bin Laden:

var j = 0; 
for (i in boxArray){ 
    game.load.image(boxArray[j].name, 'collCreatorAssets/boxes/'+boxArray[j].name+'.png'); 
    j++; 
} 

und zu versuchen, sie zu benutzen, innerhalb meines Codes wie folgt:

j = 0; 
for (i in boxArray){ 
    var newBox = boxes.create(boxArray[j].xPos, boxArray[j].yPos, boxArray[j].name); 
    newBox.body.immovable = true; 
    newBox.destructable = boxArray[j].destructable; 
    j++; 
} 

Protokollierung der Array an der Konsole, bekomme ich keine überraschenden schlechten Nachrichten. Das Array mit den Objekten funktioniert einwandfrei.

nicht überraschend, da die Position, die ich von xPos und von YPos erhalten habe, mit den entsprechenden Werten innerhalb der Objekte im Array auschecken. was zu richtig platzierten Bildobjekten innerhalb des Spiels führt. es lädt die Bilder einfach nicht.

die Bilder werden auch auf dem Server gefunden, wenn sie in der Vorspannung Funktion, die nur Fehler, die ich bekommen Laden, wenn Sie das Spiel starten:

Phaser.Cache.getImage: Key "box0" not found in Cache. 

die Parameter der Funktion sind erstellen

sprite.create(x,y,'key'); 

und die Parameter der load.image Funktion sind

game.load.image('key', 'path'); 

ich habe t Das Laden der Bilder in den Preloader und das Erstellen der Sprites innerhalb des Spiels mithilfe der Loop manuell durchführen.

so kann ich das Problem auf den Preloader eingrenzen, aber ich sehe nicht, was ich vermisse.

Antwort

0

das Problem gefunden. Ich bin ein Idiot.

Die Schleife war außerhalb der Erfolgsfunktion der Anforderung, die JSON-Datei zu erhalten.