So, endlich habe ich das Item-System fertig, eigentlich wollte ich schon gestern diesen Post verfassen, es kamen jedoch mehrere Bugs dazwischen. Nun jedoch funktioniert alles einwandfrei :)
Zum Inventar-System:
 |
So sieht der GameScreen mit Inventar aus.
Momentan gibt es zwei Getrennte Inventar-Bereiche:
"Inventar" ( das normale ) und "Rucksack",
dies kann man sich später im Spiel durch
den Erwerb eines Rucksackes dazukaufen. |
Inventare bestehen standardmäßig aus
10x10 Feldern, den denen die Items gespeichert werden.
Inventare werden durch die Klasse
Inventory gebildet und als Array gespeichert.
Verschieben von Items:
Jedes verschobene Item wird zunächst global ( also Inventar unabhängig ) erfasst und wenn es über einem Inventar wieder losgelassen wird, dort auch eingefügt ( sofern der Platz frei ist ).
Temporäres Inventar:
Wenn man Items außerhalb eines Inventares loslässt, so wird es in das so genannte temporäre Inventar verschoben.
Dies dient dazu z.B. aufgenommene Items ersteinmal zwischen zu lagern um sie dann richtig aufzunehmen. Auch kann man damit ein vollen Inventar leicher sortieren, indem man zwischenzeitlich Platz schafft.
Man sollte jedoch beachten, dass das temporäre Inventar beim laufen geschlossen wird!
 |
Aufgenommene oder weggeworfene Items
erscheinen zunächst im "Temporären-Inventar". |
Vergleich von Items:
Wenn man zwei Items vergleichen möchte, so kann man ein Item anklicken und mit der Maus über ein anderes gehen, dann werden diese direkt miteinander verglichen.
Die Werte des zuletzt ausgewählten Items stehen dabei in Klammern.
Schlechtere Werte werden rot und bessere grün angezeigt.
 |
Items können direkt miteinander verglichen werden. |
 |
Vergleiche können Inventarübergreifend geschehen,
zudem kann man den Inventar-Bereich
nach oben/unten verschieben. |
Features im Überblick:
- Verschieben ( inner- und außerhalb des Inventars )
- Temporäres Inventar zum Aufnehmen und sortieren von Items
- Vergleich von Items
- Mehrere Inventare, sowie die Möglichkeit neue durch Kauf dazu zu erwerben
Item-System:
Arten von Items:
Bisher gibt es 17 Kategorien an Items:
- Einhand-/Zweihandwaffe ( Klinge )
- Bogen, Pfeil
- Axt, Streitkolben ( beides Zweihand )
- Handschuh
- Armpanzer
- Kopfbedeckung
- Brust- & Beinpanzer
- Schuh
- Schild
- Rune, Trank
- Schmuck, Kleidung
Speichern und Verwalten:
Alle Items werden bei Spielstart einmal erstellt und in der Klasse ItemLibrary
als Array gespeichert, dadurch wird weniger Speicherplatz benötigt als
wenn man jedes Item im Spiel einzeln erstellt. Jedes Item hat somit eine Nummer ( ID = Index des Arrays ) mit der man dieses Item aufrufen kann ( um es zu
zeichnen, etc. ).
Die Items ( bzw. deren IDs ) werden daher als Integer-Liste - Inventory.Items<int> - gespeichert, wo auch die Position der Items im Inventar ( welches Feld ) als Liste gespeichert ist ( Inventory.ItemPosition<Vector2> ).
Gezeichnet wird jedes Item dann wieder über die Item Klasse ( Aufruf durch ItemLibrary.Item[Inventory.Items[ItemNumber]].Draw(SpriteBatch);, so einfach ist das ;) ).
Eventuell
steige ich später auf eine Datenbank oder andere externe Dateien um (
um eigene Items zu ermöglichen ) aber zum testen bleibt es erstmal
intern.
|
Bei Eigenschaften der Items erscheint ein Popup. |
|
Eigenschaften von Items:
Jedes Item hat dieselben Eigenschaften!
Eine Hose hat also, genau wie ein Schwert, die Eigenschaft "Schaden", wobei der Wert bei 0 liegt ;)
Insgesamt gibt es folgende Eigenschaften:
- Kauf- & Verkaufpreis
- Schaden
- Rüstung
- Extra Leben
- Extra Mana
- Extra Ausdauer
- Extra Geschwindigkeit
Was als nächstes kommt:
- Neues Hauptmenü ( neuer Hintergrund, Animation, Schrift, etc. )
- Lademenü zum Laden eines Spielstandes
- Einstellungen
- Bereich für Spielerinformationen
- Eventuell: Ein ins Spiel integrierter Map-Editor ( statt des momentan externen Editors ), bzw. zumindest der Anfang davon.
Über
Kritik, Anmerkungen und generelles
Feedback würde ich mich sehr freuen, vielen Dank!
mfg
Hauke