Ich habe das Problem, ein Inventarsystem in XNA zu implementieren (spielt keine Rolle, könnte jede Plattform sein), aber bisher. Hier ist das Problem, um das ich mich zu kümmern versuche:
Wie kann ich einen Gegenstand aus der Welt holen (denken Sie, wenn Sie ein Monster töten, lässt es die Rüstung fallen) und ihn in das Inventar meines Spielers aufnehmen?
Wenn ein Inventar technisch gesehen nur eine Liste von Gegenständen ist, wie könnte ich dann Stahlschwert aus der Welt in das Inventar meines Spielers aufnehmen, ohne dass eine Klasse mehr als eine Sache tut?
Ich habe derzeit eine Elementstruktur, die einen eindeutigen Hex-Wert, eine Anzahl der Elemente (für Stapelelemente wie Pfeile) und eine Textur zum Rendern im Inventar sowie einige andere unwichtige Eigenschaften (Name, Beschreibung usw.) enthält. .
Es wäre ein schlechtes Design, wenn ich meine vorhandene Gegenstandsklasse ändern müsste, um eine Weltposition zusammen mit der Kollisionserkennung aufzunehmen (ich möchte nicht, dass der Gegenstand durch die Erde fällt).
Vielen Dank für alle Überlegungen!
Inventory
, die a nimmt WorldItem
und es als hinzufügt InventoryItem
. Damit können auch Fälle behandelt werden, in denen Elemente gestapelt werden müssen (z. B. Pfeile).
WorldItem
die von deiner getrennt istInventoryItem
? (VielleichtWorldItem
hat der eineInventoryItem
Vorlage, die beim Abholen in das Inventar des Spielers aufgenommen wird).