Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.167 Beiträge
 
Delphi 12 Athens
 
#5

Re: Simulation kleiner "Dinger" (Achtung Sinnfrei)

  Alt 10. Feb 2009, 14:29
Also ein Timer kann sich nicht "überholen", es sei den du machst z.B. ein Application.ProcessMessages drt rein, womit die Nachrichtenschleife mittendrin ausgeführt wird.
Denn die Timernachricht wird von dieser abgearbeitet und alle Nachrichten werden normaler Weise nacheinander verarbeitet.

Wegen dem an einer Stelle sammeln ... vermutlich ist einfach deine Berechnung irgendwo falsch ... ich hatte es hier auch schon, daß sich sehr viele Partikel in einer Futterstelle sammelten und diese nicht verschwand.

womöglich könntest du auch etwas mit Records rumspielen, damit sieht man dann auch leichter, was womit gemeint ist. (vielleicht hast'e ja nur irgendwo 'nen falschen Array-Index verwendet)
Delphi-Quellcode:
// statt
var
  partikel: array of array[0..3] of extended;
  food: array of array[0..2] of extended;

// z.B. lieber sowas
type
  TPartikel = record
    x, y, movX, movY: extended;
  end;
  TFood = record
    x, y, mirfälltgradkeinnamedafürein: extended;
  end;
var
  partikel: array of TPartikel;
  TFood: array of TFood;
wofür ist px1 und px2?
und warum sind x2 und y2 globale Variablen, wo sie doch nur in FormMouseMove verwendet werden
ja und wozu wird in FormMouseMove gemalt ... wird doch eh gleich wieder vom Timer übermalt

PS: Deine CodeFormatierung ist nicht unbedingt die Beste ... könnte man vielleicht etwas aufräumen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat