Ich wundere mich über das Design im Spiel. Meine aktuelle Situation dreht sich um Kacheln - ich habe viele verschiedene Ebenen mit unterschiedlichen Objekttypen (für alle, die mit Kacheln nicht vertraut sind, ist ein Objekt nichts anderes als eine Koordinate mit beliebigen Eigenschaften).
Ich kompiliere das Spiel derzeit jedes Mal neu, wenn ich eine kleine Änderung an meiner Kartendatei vornehme, um festzustellen, ob alles richtig positioniert ist. Gibt es eine Möglichkeit für mich, dass mein Spiel das Level automatisch neu lädt, wenn eine Änderung der Kartendatei festgestellt wird? Erlaubt XNA dies überhaupt oder erlaubt die Funktionsweise der Inhaltspipeline keinen dynamischen Inhalt auf diese Weise? Alle Tipps oder Vorschläge sind absolut willkommen.
Sie können auch Karvonite verwenden, wenn Sie dies schnell erledigen möchten.
Es ist ein agiles Persistenz-Framework. Ich bin nicht sicher, ob die neue Version unter Windows Phone 7 oder Xbox funktioniert.
Sie würden eine Persistenzdefinition mit ihrem Persistenzeditor erstellen (es ist ziemlich einfach, Sie importieren einfach die Assembly und überprüfen die Felder / Eigenschaften der Klassen / Strukturen, die beibehalten werden sollen). Sie initiieren einen ObjectSpace im Code und fügen Objekte hinzu / entfernen / holen sie ab . (Diese Objekte bleiben bestehen)
Wenn Sie eine Abstraktion erstellen könnten, damit die Kachel-Engine oder wie auch immer Sie sie nennen, es nicht genau interessiert, wie sie die Karte erhält, sondern nur, dass sie die gewünschte erhält. Dann können Sie zurückgehen und den XmlSerializer oder den Intermediate verwenden. (je nachdem, was Sie bevorzugen) Alles, was Sie tun müssen, um diese anderen Serializer zu implementieren, ist eine weitere Implementierung der Abstraktion zu erstellen (eine Schnittstelle oder eine abstrakte Klasse).
Ich denke, es gibt ein Beispiel dafür, wie Inhalte zur Laufzeit auf der Club-Website des XNA-Erstellers erstellt werden. Es wird jedoch möglicherweise nicht mit dem neuesten Framework erstellt. Auf diese Weise können Sie Ihren alten Code behalten, wenn Sie bereits die Inhaltspipeline verwenden. Hier ist der Link: Winform Series 2: Laden von Inhalten
quelle