Speicher zu der Position der "Bikes" auch ihre Geschwindigkeit (und Richtung). Dann nimm weiterhin nur einen Timer, aber bewege jedes Bike immer nur um seine eigene Geschwindigkeit in seine eigene Richtung weiter (Geschwindigkeit und Richtung lassen sich i.A. zusammen als ein einziger Vektor darstellen). Das wäre, abgesehen davon, dass Timer hier im Grunde schon eher fragwürdig sind, schon näher an best-practice. (Und es macht auch wirklich Sinn
)
Stimmt so könnte ich das ganze vereinfachen
Aber wieso findet du (oder ihr
) dass Timer fragwürdig sind ? Wie kann man soetwas sonst realisieren ?
glaube Vektoren werde ich mir demnächst mal in Delphi anschauen müssen
@Sir Rufo:
Delphi-Quellcode:
procedure TSpielfeld.onTimer(Sender: TObject);
begin
if Sender = Timer[0] // <-- ja wenn da nichts in Sender ist
...
(Sender as TTimer).Enabled := False; // <-- ???
bewegeBikes(Sender);//stellt nach Bewegung (Sender as TTimer).Enabled := True // <-- ???
end;
ich hatte das Problem, dass der Timer eine Berechnung gestartet hat, doch obwohl er noch nicht fertig mit rechnen war hat der nächste Timer schon losgelegt. Das kam dann zu recht fiesen Fehlern. Ich müsste mal testen ob es immernoch Fehler produziert
@himitsu:
Wo liegt denn der Vorteil von TObjectList's gegenüber Arrays ? Habe es bisher immer mit Array gemacht