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 WorldItemund es als hinzufügt InventoryItem. Damit können auch Fälle behandelt werden, in denen Elemente gestapelt werden müssen (z. B. Pfeile).
WorldItemdie von deiner getrennt istInventoryItem? (VielleichtWorldItemhat der eineInventoryItemVorlage, die beim Abholen in das Inventar des Spielers aufgenommen wird).