![]() |
Kreaturensimulation: diverse Probleme mit Create und Class
Ich bin dabei eine Simulation programmieren. :-D
Ich habe folgende eigene Klasse: 8)
Delphi-Quellcode:
Ich möchte beliebig viele Tiere erzeugen. Bisher mache ich es so:
TTier = class
public Fortbewegung: currency; Verteidigung: currency; Angriff: currency; Position: Tpoint; end;
Delphi-Quellcode:
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:
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;
Delphi-Quellcode:
mit der forschleife wollte ich alle vorhandenen Komponenten durchlaufen und somit alle schon erzeugten Tiere bewegen. Wo liegt der Fehler? :balloon:
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; Außerdem habe ich noch eine Frage: Ist eine eigene Klasse die richtige Wahl, wenn ich ungefähr 10000 Tiere erzeugen will? |
Re: Kreaturensimulation: diverse Probleme mit Create und Cla
Ich habe sowas mit einer TObjectList gelöst. Das
![]() |
Re: Kreaturensimulation: diverse Probleme mit Create und Cla
Verwalte die Instanzen besser in einem array oder noch besser einer Liste
|
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
|
Re: Kreaturensimulation: diverse Probleme mit Create und Cla
Wenn du weniger als 100001 hast auf jeden Fall.
|
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:
|
Re: Kreaturensimulation: diverse Probleme mit Create und Cla
Dann nimm zumindest einen dynamischen Array
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:03 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