![]() |
Spielfeld mit Klassen als Felder
Hallo :hi:,
ich möchte einen Bomberman-Klon programmieren, allerdings steh ich jetzt vor einem Problem. Ich möchte ein Spielfeld erstellen mit verschiedenen Klassen als Feldern. In einem Array kann man ja nur gleiche Klassen verwalten. Wie kann ich das also anders anstellen? MfG freak |
Re: Spielfeld mit Klassen als Felder
Zitat:
Wie wäre es mit:
Delphi-Quellcode:
Frank :coder:type TFeldtyp = (nix,Wand, Kirsche, Taler, Bombe); var Feld : array[0..80,0..200] of TFeldtyp; |
Re: Spielfeld mit Klassen als Felder
Delphi-Quellcode:
type
TFeld = class end; TWand = class (TFeld) end; TSpielfeld = array[0..1,0..1] of TFeld; var S: TSpielFeld; S[0,0] := TWand.Create; //etc. |
Re: Spielfeld mit Klassen als Felder
Hi,
wenn du tatsächlich Klassen im OOP-Sinne meinst, dann könntest du sie sehr wohl in einem Array verwalten, wenn sie -entweder von einer gemeinsamen Oberklasse (abstrakte "Feld"-Klasse) abstammen -oder ein gemeinsames Interface implementieren. Gruß Christian //edit: Ja, kam ein roter Kasten. :) Ich lass es trotzdem mal stehen--Interface hat schließlich noch keiner gesagt :mrgreen: |
Re: Spielfeld mit Klassen als Felder
Zitat:
MfG greak |
Re: Spielfeld mit Klassen als Felder
Nein TFeld ist "nur" eine Dummy Klasse...
Die braucht garnix.. Frank |
Re: Spielfeld mit Klassen als Felder
Du kannst auch ein zweistufiges Veerebungsschema für die Steine entwerfen, wobei die übergeordnete Klasse die Eigenschaften des Spielsteins nicht haben. In diesem fall kannst du aber auf diesen Aufwand veruchten, da sich die Anzhal der Eigenschaften wohl im Rahemn hält.
|
Re: Spielfeld mit Klassen als Felder
Zitat:
ICh hab leider kein Delphi hier um das zu testen. :( MfG freak |
Re: Spielfeld mit Klassen als Felder
Delphi-Quellcode:
if S[0,0] is TBomb then TBomb(S[0,0]).ExploTime := 5;
|
Re: Spielfeld mit Klassen als Felder
Das geht tatsächlich. :) Aber da ergibt sich ein neues Problem. Wenn ich das Spielfeld erstelle sind ja noch keine Bomben auf dem Feld. Wenn ich dann das Feld mit TFeld erstellt hab und dann ein TBomb draus mache, muss ich ja erst das Feld zerstören, das neue Feld erstellen und dann die Bumbenzeit setzen. Wenn die Bombe explodiert muss das wieder alles rückgängig gemacht werden. Geht das nicht einfacher? Ich bin für alle Ideen offen.
Danke euch schonmal. :D MfG ein ratloser freak |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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