![]() |
IDLE nur bei Aktionen ausgeführt?
Liste der Anhänge anzeigen (Anzahl: 1)
Hey DPs, :hi:
Ich hab ein Problem mit der IDLE Procedure, die wird nur ausgeführt wenn man irgendwas in der auch macht also Taste drücken oder maus bewegen. Ich Programmiere gerade ein Spiel mit OpenGL und wenn ich da eine Taste drücke (ruckelt es) und wenn man da noch die maus bewegt läuft es normal, aber warum ist das so ? hier mal der code:
Delphi-Quellcode:
procedure TForm1.Idle(Sender: TObject; var Done: Boolean);
begin LoopTime := gettickcount-starttime; TimeFactor := LoopTime*0.00000000001+1; StartTime := gettickcount; If xspeedtrain < 10 then xspeedtrain:=xspeedtrain+0.01; // Schiff Speedsystem If (getasynckeystate(ord('W')) < 0) or (getasynckeystate(ord('S')) < 0) then begin If (schiff.aky > 2.5) and (getasynckeystate(ord('W')) < 0) then schiff.aky:=schiff.aky+0.005; If (schiff.aky < 2.5) and (getasynckeystate(ord('S')) < 0) then schiff.aky:=schiff.aky-0.005; end else begin If schiff.aky < 0 then schiff.aky:=schiff.aky+0.005 else If schiff.aky > 0 then schiff.aky:=schiff.aky-0.005 else schiff.aky:=0; end; if not((getasynckeystate(ord('W')) < 0) or (getasynckeystate(ord('S')) < 0) and (schiff.aky < 0) and (schiff.aky > 0)) then schiff.transy := schiff.transy + ( schiff.aky*Timefactor); Render; end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnIdle:=idle; end; Die exe zum testen ist im Anhang. Steuerung: S vorwärts :-D Pfeiltasten Sicht ändern Ich danke im vorraus MfG Chefx |
Re: IDLE nur bei Aktionen ausgeführt?
Idle wird aufgerufen, wenn die Message-Queue leer ist und die Applikation in den Idle-Zustand übergeht. Willst du weiterhin OnIdle-Ereignisse bekommen, musst due Done := false setzen. Alternativ geht aber auch ein Timer.
|
Re: IDLE nur bei Aktionen ausgeführt?
danke Uwe Raabe,Problem gelöst :thumb: :thumb: :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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 by Thomas Breitkreuz