Quote Originally Posted by PyroGine Development
Im saying that PG.Timer.DesiredFPS is the value that you set when PG.Timer.Init was called. Since aElapsedTime will always be a quantity associated with DesiredFPS then if you multiple aElapsedTime by 1.0 it will normalize it one second in this case. When the accumulated value become greater than PG.Timer.DesiredFPS (35) then one second of time has passed. If you wanted to check for 1/2 second then yes it would be 1/2 that (17.5).
Ok, I think I understand

Expanding on this, I have a bunch of other objects in my game that I want to control using the elapsed frame time in seconds (or fractions thereof) by passing in this time into their .Update() method...

To pass in the number of seconds into these methods, do I do this kind of thing?

[pascal]
var
TimeSlice: Single;
begin
TimeSlice := 1.0 * aElapsedTime / PG.Timer.DesiredFPS;

...
MyObject.Update(TimeSlice);[/pascal]

I'm hoping this will pass in a time I can then compare to, let's say 1 = 1 second, 0.010 for 10ms?

EDIT: just so you know, the fix for my global game time now works lovely thanks to you

[pascal] FTimeCount := FTimeCount + (1.0 * aElapsedTime);
if FTimeCount >= PG.Timer.GetDesiredFPS then begin
FTimeCount := 0;
Inc(FTime.Seconds);

if FTime.Seconds >= 60 then begin
FTime.Seconds := 0;
Inc(FTime.Minutes);

if FTime.Minutes >= 60 then begin
FTime.Minutes := 0;
Inc(FTime.Hours);
end;
end;
end;
[/pascal]

cheers,
Paul