Wie: Inventar
Übersicht

NjuBetreff: Wie: Inventar |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich möchte zu einem kleinen RPG dem Spieler ein Inventar (unendlich viel Platz bis jetzt) spendieren. Da ich Delphi-Programmierer bin hätte ich nun zwei Lösungsansätze gehabt: 1. Alles in eine Access-Datenbank speichern und per Select bei Bedarf zugreifen (Vorteil: Auch bei vielen Gegenständen bleibt die Geschwindigkeit konstant) 2. Einen Record erstellen und dieses dann als dynamisches Array deklarieren Bsp (wenn jemand etwas damit anfangen kann): Code: [AUSKLAPPEN] type rec_Inventar = record
Name: String; Anzahl: Integer; Index: Integer; end; Public Charakterinventar: array of rec_Inventar Was ist die beste Methode dies unter BlitzMax zu lösen/realisieren? |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Type rec_Inventar
Field Name:String Field Anzahl:Int Field Index:Int End Type Global Charakterinventar:rec_Inventar[] Das Objekt sähe in etwa so aus! Um das ganze per Stream aus einer Datei zu holen müsste ich jetzt zu weit ausholen. (Ich sitz auf der Arbeit) ![]() |
||
- Zuletzt bearbeitet von d-bug am Mo, Mai 26, 2008 10:31, insgesamt einmal bearbeitet
Nju |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
d-bug hat Folgendes geschrieben: Code: [AUSKLAPPEN]
Type rec_Inventar
Field Name:String Field Anzahl:Int Field Index:Int End Type Global Charakterinventar:rec_Inventar[] In etwa so! Und darauf könnte ich die Größe (sprich: Anzahl der Einträge) beliebig verändern und über eine Schleife auf einzelne Einträge zugreifen? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erst nachdenken, dann ausprobieren.
Wenn dann noch Fragen offen bleiben, diese Stellen |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber sicher!
Per Schleife füllen Code: [AUSKLAPPEN] For Local i:int = 0 Until 10
Charakterinventar = Charakterinventar[..i+1] 'Array redimensionieren Charakterinventar[i] = New rec_Inventar 'neue Instanz von rec_Inventar im Array erstellen Charakterinventar[i].Name = "Inventar"+i 'Namen der Instanz vergeben Next Per Schleife abrufen: Code: [AUSKLAPPEN] For Local Inventar:rec_Inventar = EachIn Charakterinventar
Print Inventar.Name 'Name der Instanz in die Konsole (Output) ausgeben Next (sorry, sah deinen Post nicht während des Tippens, Dreamora) |
||
- Zuletzt bearbeitet von d-bug am Mo, Mai 26, 2008 10:40, insgesamt einmal bearbeitet
Nju |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dreamora hat Folgendes geschrieben: Erst nachdenken, dann ausprobieren.
Wenn dann noch Fragen offen bleiben, diese Stellen Danke für die Antwort, aber ein einfaches "Ja" oder "Nein" wäre konstruktiver gewesen, ganz ehrlich - zumal dies für dich als Schreiber sogar noch weniger Arbeit gemacht hätte. ![]() Natürlich werde ich es ausprobieren, das nur mal nebenbei... |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein wärs nicht, sonst hättest du den Tipp den du erhalten hast erst ausprobiert und dann gefragt anstatt einfach ma ERST zu fragen und dann zu gucken obs ein problem gibt. Genau solches verhalten ist mit ein Grund warum ich nur Erklärungen und Pseudocode poste, da es den User zwingt es zu probieren und sich damit zu befassen.
Mit deinem "Vorgehen" wirst du kaum jemals lernen zu programmieren, denn programmieren ist learning by doing und aus seinen Fehlern lernen also musst du sie erst Ma machen anstatt nach jedem Schritt zu Fragen. Anders gesagt: Solange wir dir mit Ja / Nein und fertigen sources helfen, lernst du herzlich wenig. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group