Zum Inventar-System:
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". |
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:
( verändert übernommen von vorherigem Post )
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
Wow da habt Ihr ja ne ganze Palette an funktionen fertig bekommen :) Das mit dem Temporären Inventar finde ich eine gute Idee. Kann sich der Charakter dann weiter bewegen oder wird es dann geschlossen und man legt die Gegenstände endgültig ab?
AntwortenLöschenBin schon auf das nächste Release gespannt :)
nein es wird geschlossen dobald man losläuft, sonst hätte man ja zusätzlichen "kostenlosen" Platz für Items ;)
LöschenBis zum Release dauerts aber noch eine ganze Weile, da noch einige Sachen ( neues Hauptmenü und eventuell der Mapeditor ) noch kommen.
Cool, dass du wieder mal weiter gemacht hast ;)
AntwortenLöschenDanke, ich habe jedoch nicht "mal" weitergemacht, sondern mache konstant an Arengu weiter ( ich habe also nicht die ganze zeit nichts gemacht ) nur es dauert halt seine Zeit, bis man Erfolge erzielen kann.
Löschenmfg
Hauke
Ah, ok, tut mir Leid. Hat ein bisschen so ausgesehen als hättest du eine große Pause gemacht und dann wieder eine Woche aktiv gearbeitet. Lass halt mal ein bisschen mehr von dir hören!
LöschenGleich noch eine Frage: Hast du vor, irgendein System zu entwerfen damit andere Leute Arengu erweitern können? Etwa ein System um benutzerdefinierte Quests oder Items einfügen zu können währe schon cool!
Im Prinzip ja, ich weiß zwar noch nciht s genau wie ;), aber wenn dann erst in späteren Versionen. Ich weiß jedoch nicht ob ich Quests oder Maps, etc. ( also "größere" Sachen ) mit in das PlugIn-System einbringe. Eher dann Items, Dialoge, evtl. NPCs, Musik, Texturen, sowas eben. Wie genau dann aber ein "SDK" aussehen wird, weiß ich noch nicht ( wie gesagt, wenn dann kommt erst später ).
Löschenmfg
Hauke