"delay" function

S

Shuo Xiang

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
 
V

Victor Bazarov

Shuo Xiang said:
[...] 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
 
J

John Harrison

Shuo Xiang said:
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
 
G

Govindan Chandran

Shuo Xiang said:
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
 
J

Joe Hotchkiss

Shuo Xiang said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,756
Messages
2,569,540
Members
45,025
Latest member
KetoRushACVFitness

Latest Threads

Top