Forum: Object-Pascal / Delphi-Language
Delphi
by Acuaplano,
22. Jun 2013
Okay, hat sich erledigt, ich hatte vergessen den "class of"-Befehl zu benutzen.
TUnbenutzbarClass = class of TUnbenutzbar
...
Dictionary := TFPGMap<String, TUnbenutzbarClass>.Create;
...
Forum: Object-Pascal / Delphi-Language
Delphi
by Acuaplano,
20. Jun 2013
Hab jetzt das mit dem "Dictionary" probiert. Nur heißt das bei Lazarus TFPGMap und hat bisschen andere Namen, wobei das in meinen Augen ansonsten wenig Unterschiede hat.
Eine Klasse einfügen funktioniert und auslesen geht glaube ich auch*.
Nur schmeißt der mir jetzt hier ne Fehlermeldung aus (External SIGSEGV):
Value := Dictionary.GetKeyData('Baum');
with...
Forum: Object-Pascal / Delphi-Language
Delphi
by Acuaplano,
18. Jun 2013
Ich nehme mal an, dass ich für meine Klassen stattdessen "RegisterClasses" nehmen soll.
Aber das Problem ist jetzt dabei, dass TImageSprite keine "persistent class" ist und ich die deshalb nicht registrieren kann. Ich versteh auch im Moment nicht wo jetzt der Sinn dahinter ist. Gäbe es denn ne andere Möglichkeit, als die Klassenvererbung zu ändern? Falls nicht, wovon müsst ich theoretisch...
Forum: Object-Pascal / Delphi-Language
Delphi
by Acuaplano,
18. Jun 2013
Meinst Du damit das Thema mit GetClass & Co?
Das scheint nämlich ein guter Ansatz zu sein :). Jedenfalls hab ich mich eben auch noch daran versucht und nicht so ganz weit gekommen. Zunächst aber etwas zur "Basisklasse":
Die Hierarchie sieht im Moment so aus:
TImageSprite (vorgegeben durch Engine)
|
TObjekt
|
TUnbenutzbar
|
Forum: Object-Pascal / Delphi-Language
Delphi
by Acuaplano,
18. Jun 2013
Ich hab mich jetzt etwas in das Thema eingelesen und werd's noch etwas tun, aber entweder hab ich noch nicht den richtigen Teil gefunden oder das verschiebt mein Problem nur...
Am Beispiel aus dem Internet:
if ASelector = 'Furniture' then
Result := TFurniture.Create
else if ASelector = 'Chair' then
Result := TChair.Create
else if ASelector = 'Cupboard' then
Result :=...
Forum: Object-Pascal / Delphi-Language
Delphi
by Acuaplano,
18. Jun 2013
Ich würde es mir dann in etwa so etwa in der Art vorstellen:
raster.Create
Sodass das Programm eben das hier ausführen würde:
TBaum1.Create
Forum: Object-Pascal / Delphi-Language
Delphi
by Acuaplano,
16. Jun 2013
Okay, danke für die ausführliche Antwort!
Wir werden es dann mal so versuchen, aber das Hauptproblem ist ja immer noch vorhanden:
Ich versuch's mal anhand des aktuellen Codes zu erklären:
//Map bauen
for i := 1 to reader.GetRasterX do // 1 bis 32 (Breite des Rasters)
begin
for j := 1 to reader.GetRasterY do
Forum: Object-Pascal / Delphi-Language
Delphi
by Acuaplano,
16. Jun 2013
Lesbar muss es nicht sein, dafür mit nem selbst gemachten Editor erstellbar, aber das sollte ja da auch kein Problem sein.
Falls ich das jetzt richtig verstanden habe (TFileStream ist Oberklasse von allen Objekten?), wird das auch nicht funktionieren, da ich die Objekte von einer anderen Klasse der Sprite Engine ableiten muss. Ansonsten müsste ich vielleicht große Teile der Engine umschreiben......
Forum: Object-Pascal / Delphi-Language
Delphi
by Acuaplano,
16. Jun 2013
Moin Moin,
Ich arbeite grad' an einem kleinen Spiel mit der Andorra 2D-Engine, wobei jedoch mein Problem eher Delphi bezogen ist. Das Problem liegt in der Mapgenerierung, die in Textdateien abgespeichert wird. Bis jetzt sah die Mapgenerierung so aus:
Es steht ein Raster, dass aus Zahlen besteht, in etwa so:
1;2,3;
5;2;7;
8;2;3;
Die Zahlen zeigen dabei die Bilder für den Maphintergrund an....