Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kreaturensimulation: diverse Probleme mit Create und Class (https://www.delphipraxis.net/120615-kreaturensimulation-diverse-probleme-mit-create-und-class.html)

vsilverlord 13. Sep 2008 18:42


Kreaturensimulation: diverse Probleme mit Create und Class
 
Ich bin dabei eine Simulation programmieren. :-D
Ich habe folgende eigene Klasse: 8)
Delphi-Quellcode:
TTier = class
   public
    Fortbewegung: currency;
    Verteidigung: currency;
    Angriff: currency;
    Position: Tpoint;
end;
Ich möchte beliebig viele Tiere erzeugen. Bisher mache ich es so:
Delphi-Quellcode:
var
...
neuesTier: TTier;
...
implementation
...
procedure TForm1.Button1Click(Sender: TObject);
begin
neuestier:= ttier.create;
neuestier.fortbewegung:=50;
neuestier.verteidigung:=250;
neuestier.angriff:=800;
neuestier.position.x:=500;
neuestier.position.y:=500;
end;
nun möchte ich alle tiere aufeinmal bewegen lassen, move ist eine funktion mit den parametern tpoint und currency, das den Punkt in eine Richtung mit dem Skalarbetrag von currency wandern lässt:
Delphi-Quellcode:
for i:=0 to componentcount-1 do
begin
if components[i]is ttier then
begin
ttier(components[i]).position:=move(ttier(components[i]).position,(ttier(components[i]).fortbewegung)
end
end;
mit der forschleife wollte ich alle vorhandenen Komponenten durchlaufen und somit alle schon erzeugten Tiere bewegen. Wo liegt der Fehler? :balloon:
Außerdem habe ich noch eine Frage: Ist eine eigene Klasse die richtige Wahl, wenn ich ungefähr 10000 Tiere erzeugen will?

freak4fun 13. Sep 2008 18:50

Re: Kreaturensimulation: diverse Probleme mit Create und Cla
 
Ich habe sowas mit einer TObjectList gelöst. Das =objectlist]hier hat mir sehr geholfen. ;)

mkinzler 13. Sep 2008 18:51

Re: Kreaturensimulation: diverse Probleme mit Create und Cla
 
Verwalte die Instanzen besser in einem array oder noch besser einer Liste

vsilverlord 13. Sep 2008 19:44

Re: Kreaturensimulation: diverse Probleme mit Create und Cla
 
tobjectlist ist eine wirklich gute idee. Nimmt die mehr Speicher wie ein array ein? :balloon:
Delphi-Quellcode:
liste:array[0..10000]of ttier

mkinzler 13. Sep 2008 19:46

Re: Kreaturensimulation: diverse Probleme mit Create und Cla
 
Wenn du weniger als 100001 hast auf jeden Fall.

freak4fun 13. Sep 2008 23:05

Re: Kreaturensimulation: diverse Probleme mit Create und Cla
 
Mit dem Speicherverbrauch kenne ich mich nicht aus, aber die Handhabung ist sehr angenehm. ;) Ich würde die ObjectList nun nicht mehr gegen ein Array eintauschen wollen. :mrgreen:

mkinzler 13. Sep 2008 23:06

Re: Kreaturensimulation: diverse Probleme mit Create und Cla
 
Dann nimm zumindest einen dynamischen Array


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz