Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Triple Chance (Walzenspiel aus der Merkur-Spielothek) !NEUES UPDATE!

  Alt 24. Jul 2011, 21:39
Zitat:
imageX.top := imageX.top + 5;
Wenn sich etwas gleichmäßig bewegen soll, dann keine festen Schritte verwenden und nicht einfach annehmen ein Timer würde wimmer regelmäßig/gleichmäßig arbeiten.

ImageX.Top := ImageX.Top + Round(ZeitSeitLetztemSchritt / ZeitProIntervall * SchrittweiteProZeitintervall); .

beim Start Zeit := GetTickCount; setzen und dann
Delphi-Quellcode:
procedure Timer1Timer(...);
var
  Schritt: Integer;
begin
  Schritt := ((GetTickCount - Zeit) * 5) div Timer1.Intervall;
  // eventuell stattdessen mit Runden auf ganze Schritte:
  // Schritt := Max(Round((GetTickCount - Zeit) / Timer1.Intervall), 1) * 5;
  // Schritt := Max((GetTickCount - Zeit + Timer1.Intervall div 2) div Timer1.Intervall, 1) * 5;
  Zeit := GetTickCount;

  ...
  ImageX.Top := ImageX.Top + Schritt;
  ...
end;
Würde jetzt der Timer mal ein paar Intervalle überspringen, würde auch das Bild mitspringen und optisch bleibt es eine gleichmäßige Bewegung, von der Entfernung her.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Jul 2011 um 21:47 Uhr)
  Mit Zitat antworten Zitat