Ich versuche gerade, Spielobjekte aus einer Tiled-Map-Datei (Tiled Map Editor) in eine Game-Engine zu laden, die ich in C# mache. Ich verwende TiledSharp (Link zu Github here). Es verwendet ein Wörterbuch, um Eigenschaften über jede einzelne Kachel (oder "Spielobjekt"), die ich zu laden versuche, zu halten. Aber aus irgendeinem Grund bekomme ich einen Fehler, wenn ich Schleife durch die Eigenschaften, und ich auch einen Fehler, wenn ich überprüfen, ob es null istC# -Dictionary - Der angegebene Schlüssel war nicht im Wörterbuch vorhanden
Hier ist ein Ausschnitt aus dem Code Ich verwende:
for (int l = 0; l < tmxMap.Tilesets[k].Tiles.Count; l++)
// This line throws an error
if (tmxMap.Tilesets[k].Tiles[l].Properties != null)
// and if I remove the above line, this line throws an error
for (int m = 0; m < tmxMap.Tilesets[k].Tiles[l].Properties.Count; m++)
Die error I get is says Der angegebene Schlüssel war im Wörterbuch nicht vorhanden. Aber ... ich suche nicht einmal nach einem Schlüssel.
Fehle ich etwas?
Jede Hilfe wäre willkommen.
_ "Ich bin nicht einmal auf der Suche nach einem Schlüssel" _ - Sie sind es doch. Ich schätze 'Tiles [l]' wirft. Warum dies der Fall ist, hängt davon ab, wie Sie das Wörterbuch deklarieren und initialisieren. Wahrscheinlich suchst du nur nach foreach (var tile in tmxMap.Tilesets [k] .Tiles) '? – CodeCaster
Von diesem Punkt Ich bin in der Lage, die Eigenschaften jeder Platte zuzugreifen, indem Sie eine andere foreach-Schleife innerhalb der Kachel-Schleife zu tun, aber dies scheint nur sehr dumm zu mir, muss es ein besserer Ansatz. –