471,089 Members | 1,445 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,089 software developers and data experts.

"delay" function

Greetings:

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).

Regards,

Shuo Xiang
Jul 19 '05 #1
4 18740
"Shuo Xiang" <sx****@uwaterloo.ca> wrote...
[...] 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).


No. But if you program for one of commonly used platforms,
it probably has something you could use. Try looking for
'sleep' or 'Sleep' function. If you can't find any, ask in
a newsgroup dedicated to your platform.

Victor
Jul 19 '05 #2

"Shuo Xiang" <sx****@uwaterloo.ca> wrote in message
news:bf**********@tabloid.uwaterloo.ca...
Greetings:

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).

Regards,

Shuo Xiang


No there isn't, although its not hard to write your own. But you would do
much better to use the facilities of whatever operating system you are using
because it can arrange for other processes to run will you are delaying.

For instance Windows has a Sleep function, no doubt other O/S have similar.

john
Jul 19 '05 #3

"Shuo Xiang" <sx****@uwaterloo.ca> wrote in message
news:bf**********@tabloid.uwaterloo.ca...
Greetings:

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).

Regards,

Shuo Xiang

Make your program or thread call sleep function, that usually causes some
delay or lots of delay(usually in milliseconds etc)
Regards
Gavin
Jul 19 '05 #4
"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

Jul 19 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

13 posts views Thread by Simon Wigzell | last post: by
8 posts views Thread by John | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.