AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Instanzen verschiedener Subklassen in einer Liste speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Instanzen verschiedener Subklassen in einer Liste speichern

Ein Thema von Mylet · begonnen am 19. Feb 2010 · letzter Beitrag vom 19. Feb 2010
 
Mylet

Registriert seit: 14. Feb 2009
2 Beiträge
 
#1

Instanzen verschiedener Subklassen in einer Liste speichern

  Alt 19. Feb 2010, 16:43
Ich programmiere momentan ein rundenbasiertes Strategiespiel mit RPG-Elementen.
Man kann ein Team aus Kämpfern auf einer schachbrettartig aufgeteilten Karte bewegen und muss Kämpfer des gegnerischen Teams bekämpfen und besiegen, um zu gewinnen.
Die Einheiten haben eine Anzahl von Statuswerten mit denen der Ablauf der Kämpfe berechnet wird, zusätzlich spielen die verwendeten Waffen eine Rolle.

Ich möchte jetzt den Einheiten die Möglichkeit geben Items zu tragen, womit wir bei meinem Problem wären.

Mein Ansatz ist die folgende Basisklasse:

Delphi-Quellcode:
type TItem = class
  private
    FName: string;
    FBeschreibung: String
    FGewicht: Integer;
    FAnzahl: Integer;
    FPreis: Integer;
  public
    function IstBenutzbar (var Benutzer: TKämpfer): Boolean; virtual; abstract; //jedes Item soll hier prüfen ob es vom Besitzer benutzt werden kann
    procedure Benutze (var Benutzer: TKämpfer); virtual; abstract; //hier soll das Item etwas mit sich (Anzahl reduzieren) und/oder dem Kämpfer machen
    procedure WriteToStream (AStream: TStream);
    procedure ReadFromStream (AStream: TStream);
    property Name: string read FName;
    //restliche properties
end;
von der würde ich dann die einzelnen Items ableiten.

Das konkrete Problem bei der Realisierung stellt sich beim Speichern bzw. Laden eines Kämpfers mit seinen Items.
Ich kann zwar durch eine Liste der Items gehen und diese nacheinander in einen Stream schreiben, aber beim Laden stellt sich dann die Frage, von welcher Klasse das Item ist.
Gibt es irgendeine Möglichkeit die Klasse eines Objektes zu Speichern und beim Laden die Daten entsprechend zuzuordnen?

Ich bin mir im Klaren darüber, dass das Ableiten einer neuen Klasse für jedes Item ziemlich aufwändig (und umständlich?) ist, aber mir fällt keine andere Möglichkeit ein wie ich die Überprüfung der Benutzbarkeit und die Anwendungsprozedur einem bestimmten Item zuordnen kann.
Wenn jemand dahingehend einen Vorschlag hat, würde sich das obrige Problem evtl. erübrigen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz