'Shuo Xiang' <sx****@uwaterloo.ca> wrote in message
news:bf**********@tabloid.uwaterloo.ca...
I'm working on some graphical game and need to animate certain things (by
continuously changing the x/y coordinate and update the display), however,
the system is blinkingly fast so no actual animations can be seen.
Therefore I need a 'delay' function. Is there a 'delay' function in C++
that accepts a time argument in seconds or its varieties (i.e. so that I
don't have to resort to the 'big for loop' scheme).
I would say that you are taking the wrong approach to this problem.
Each object should be given a velocity, and then you work out the position
according to the time at which you draw the frame. In this way, the speed
at which it moves across the screen is independant of your frame rate or the
speed of your computer/graphics card.
---------------------------------------
start_time = time
loop {
current_time = time
position = start_position + velocity * (current_time - start_time)
draw object at calculated position
}
---------------------------------------
No delays required, and everything moves in a well controlled manner.
--
Regards,
Joe Hotchkiss,
http://joe.hotchkiss.com
XXXXXXXXXXXXXXXXXXXXXXXXX
X joe.hotchkiss X
X at baesystems.com X
XXXXXXXXXXXXXXXXXXXXXXXXX