Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2698 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] Pause en millisecondes dans un prog...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Pause en millisecondes dans un prog...

n°155561
glenn
Posté le 10-06-2002 à 12:13:05  profilanswer
 

Comment est-ce-qu'on pourrais réalisé une telle pause avec la librairie time.h?
G déjà essayé la fonction delay(int ms) ms elle marche pas...

mood
Publicité
Posté le 10-06-2002 à 12:13:05  profilanswer
 

n°155566
glenn
Posté le 10-06-2002 à 12:23:05  profilanswer
 

oups sorry----->
je suis en train de faire un petit casse brique en OGL et j'aimerais qu'il tourne à peu près à la même vitesse sur des config diff. Je suis sous Visual C++ 6 et j'utlise pas Glut...

n°155594
cassidy
Black Rainbow
Posté le 10-06-2002 à 13:00:48  profilanswer
 

ca ? :)
 
NOM
       usleep  -  Interrompre le programme durant un nombre donné
       de microsecondes.
 
SYNOPSIS
       #include <unistd.h>
 
       void usleep (unsigned long usec);
       int usleep(unsigned long usec); /* SUSv2 */
 
DESCRIPTION
       La fonction  usleep()  suspend  l'exécution  du  programme
       appelant durant usec microsecondes.  La période de sommeil
       peut être allongée par une charge système  importante,  et
       par le temps passé à traiter l'appel de fonction.


---------------
Join us now and share the software;
n°155629
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 10-06-2002 à 13:52:00  profilanswer
 

je sais pas si faire une pause est le meilleur moyen de ralentir un programme... je pense que ça ne te servira qu'a obtenir une animation saccadée..
à mon avis, une synchro VBL serait bcp plus efficace : tu es assuré que ton programme tourne sur toute config (puisque l'animation se fait en fonction du taux de rafraichissement de l'écran) et tu as la garantie d'une animation fluide


---------------
J'ai un string dans l'array (Paris Hilton)
n°155733
glenn
Posté le 10-06-2002 à 14:49:20  profilanswer
 

humm, ça ma l'air intérressant cette histoire de synchro...
comment ça marche cette chose?

n°155739
smaragdus
whores, drugs & J.S. Bach
Posté le 10-06-2002 à 14:53:26  profilanswer
 

Glenn a écrit a écrit :

oups sorry----->
je suis en train de faire un petit casse brique en OGL et j'aimerais qu'il tourne à peu près à la même vitesse sur des config diff. Je suis sous Visual C++ 6 et j'utlise pas Glut...  




 
Si tu veux que ton jeu se déroule à la même vitesse qqsoit la config, il faut que tu fasses varier les frames par seconde et non pas ralentir les config rapides.

n°155744
glenn
Posté le 10-06-2002 à 14:55:55  profilanswer
 

ouais je sais, mais je sais pas comment faire... je vais me pencher la dessus et fouiller un peu dans le site de Nehe, y me semble avoir déjà vu ça qqpart.

n°155761
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 10-06-2002 à 15:05:03  profilanswer
 

Glenn a écrit a écrit :

humm, ça ma l'air intérressant cette histoire de synchro...
comment ça marche cette chose?  




Le principe est très simple.
Tu sais que l'image sur ton moniteur est formée grace à un canon à électrons qui bombarde des électrons sur le tube. Ce bombardement se fait à une certaine fréquence, en partant en haut à gauche de l'écran et en finissant en bas à droite. Il bombarde donc une ligne horizontale, revient à la ligne suivante, la bombarde, etc...
Arrivé en bas, le canon remonte pour bombarder une nouvelle image.
La fréquence de bombardement est déterminée par le taux de rafraichissement de ton moniteur. Une fréquence de 100 Hz représente 100 images par seconde, une image étant composée d'un cycle de bombardement complet à partir du haut gauche de l'écran vers le bas droite.
Le VBL (Vertical Blank) représente le moment au cours duquel le canon, une fois arrivé en bas à droite de l'écran, remonte en haut à gauche. Pendant ce laps de temps, tu peux basculer l'écran virtuel vers l'écran réél.
En effet, pour exploiter pleinement le VBL, il te faut 2 surfaces de dessin : une surface qui sera visible à l'écran et une autre surface invisible, sur laquelle tu effectueras toutes tes opérations de tracé.
Pendant que le canon balaye l'écran pour tracer l'image présente sur la surface visible à l'écran, tu effectues tes opérations de tracé dans la surface invisible.
Une fois arrivé en bas de l'écran, tu utilises le temps que met le canon pour remonter (VBL) afin de basculer la surface invisible dans la surface visible, qui sera ainsi tracée par le canon, etc...
Le plus difficile est de déterminer le moment ou le canon a atteint le bas droite de l'écran. Ceci se fait en testant des registres internes à la carte VGA, mais il est possible qu'OpenGL te propose une fonction toute faite. Je sais pas du tout, je connais pas OpenGL. Regarde si une fonction du style "WaitVBlank", "WaitRefresh", etc.. est présente
 
A+


---------------
J'ai un string dans l'array (Paris Hilton)
n°155771
glenn
Posté le 10-06-2002 à 15:10:36  profilanswer
 

ok je vois ce que tu veux dire, je vais jeter un coup d'oeil la dessus...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] Pause en millisecondes dans un prog...

 

Sujets relatifs
[Débutant prog] Un programme pour gérer une auto-école..quel language?je suis novice en prog
Linux C/C++ ou autre: Lancer un prog à distance.[Builder 3 pro + ODBC] Comment configurer ODBC depuis un prog builder
Afficher un site web dans un prog visual basic -->Problème, SOS SVP :)prog en c++ pour générateur de boite de dialogue
Pourquoi tout le monde dit un "log" au lieu d'un "prog"[c++] comment demarrer une appli dans un prog?
[c] Prog système sous LINUX ![API] kkun sait fermer une appli à partir d'un prog ?...
Plus de sujets relatifs à : [C++] Pause en millisecondes dans un prog...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)