Ich bin dabei eine Simulation programmieren.
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?
Außerdem habe ich noch eine Frage: Ist eine eigene Klasse die richtige Wahl, wenn ich ungefähr 10000 Tiere erzeugen will?