Ein Inventar in c# erstellen: Items
It's Code time! Dieses Mal habe ich ein kleines Spaßprojekt mit c# erstellt.
Dabei handelt es sich um ein konsolenbasiertes Survivalgame.
Also vergesst The long dark, Mist: Survival, Green Hell und wie diese Spiele alle so heißen.
Ja, es war nur Spaß. Obwohl... es ist ein Hunger-, Durst- und HP-System integriert. Und man muss in Echtzeit handeln bevor die Attribute den Wert 0 erreichen. Natürlich ist alles rudimentär aber die Konzepte sind vorhanden.
Ich werde 3 Beiträge erstellen und jeweils den Code als Bilder posten, da zu viel Text wohl als Spam gelten könnte.
Einfaches Diagramm, Überblick
Fangen wir mit dem rechten Bereich der Items an. Man kann nur Überleben wenn es Gegenstände gibt, die einem helfen über die Runden zu kommen.
Mit der abstrakten Klasse Item wird die Basisklasse erstellt, was alle Items gemeinsam haben. Nämlich eine Bezeichnung, Der Typ des Items und was für Effekte dieses Item auslöst.
Mit den Subklassen Consume, Armor, Tool können konkrete Items erstellt werden. Ein Consumeitem kann z.B. bis zu 5 Effekte haben, z.B. Hunger-, Leben oder Ausdauer wiederherstellen wenn diese verwendet werden.
Die enums Itemtype und ItemEffect speichern nur, um welchen Itemtyp es sich handelt (Consume, Tool, Armor) und welche Effekte möglich sind (HP_RECOVER, STAMINA_RECOVER, HUNGER_RECOVER, THIRST_RECOVER, PROTECTION, REPAIR)
Item als Basis- bzw. Superklasse
Consumeitem als Beispiel. Die anderen Subklassen sind ähnlich aufgebaut
Schön! Wir können nun Items erstellen und diese haben einen Effekt. Aber sie liegen im Moment nur rum und haben keinen Mehrwert. Wäre es nicht gut, wenn man die Items irgendwo ablegen kann und bei Bedarf darauf zugreifen kann? Und wer gibt mir neue Items? Ein Inventar oder ein Rucksack wäre nützlich. Vielleicht auch jemand der Items anbietet. Dies schauen wir uns im nächsten Beitrag an.
Textadventure?
Coole Sache.
Ich versuch mir grad ein bisschen Rust beizubringen, aber ich werde vermutlich nicht über eine gewisse Ebene hinauskommen.
So in etwa. Alle 5 Sekunden werden die Spielerattribute aktualisiert. Und wenn die Werte zu gering sind, kann man aus dem Inventar ein Item nehmen, welches z.B. den Hungerwert wieder auffüllt.
Rust ist auch eine interessante Sprache. Wichtig ist immer, egal welche Sprache, sich die Grundlagen beizubringen. Danach kann dann der advanced Stuff kommen.
Ja, so versuch ichs gerade. Derzeit sieht es relativ gut aus, weil für mich bis jetzt alles logisch und zusammenhängend wirkt. Es ist halt Übungsache.
Momentan habe ich als Hintergrund einen Lernkurs von Udemy. Der Instruktor behandelt die Themen sehr einfach, manchmal fast zu einfach. Aber hier kann ich auf jeden Fall gut ansetzen für den Anfang.
https://www.udemy.com/course/rust-programmieren-einsteigerkurs/?couponCode=ST11MT91624B
Der Kurs scheint solide zu sein für den Anfang, auch für den Preis. Vor allem wird man nicht sofort mit komplexen Themen konfrontiert was den Einstieg vereinfacht.
It is nice to read about c# I don't know much so it is good to learn a bit =)
I think C# is a good language to start with. There are many useful libraries if you need them.