IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Chronometre dans visual c++


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 18
    Par d�faut Chronometre dans visual c++
    Bonjour,

    Je voudrais incr�menter un compteur (de temps) dans un jeu de casse brique.
    C'est a dire que lorsque je clique sur la barre d'espace pour commencer je voudrais que le compteur commence a tourner puis qu'il s'arrete a un certain moment (quand c'est fini par exemple).

    Ceal me semblais assez simple mais je bute dessus.

    J'ai instanci� une donn� membre dans ma vue appel� start;
    J'ai rajout� au debut de mon view.cpp <time.h>
    J'ai d�clench� le compteur comme ceci time(&start) lorsque j'appuye sur la barre espace.

    Mais le compteur ne marche pas Il affiche toujours la meme valeur completement incoherente.

    Help please, qu'est ce que j'ai mal fait ou pas fait? Ou y a t'il une autre methode avec visual c++ peut etre?

  2. #2
    Membre exp�riment� Avatar de Rupella
    Inscrit en
    F�vrier 2005
    Messages
    286
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2005
    Messages : 286
    Par d�faut
    Quel est le code que tu utilises pour formetter et afficher l'heure

  3. #3
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    47
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 47
    Par d�faut
    Bonjour,

    Il faut que tu le rafra�chisses et incr�mentes sa valeur dans l'�v�nement OnTimer().

    J'esp�re que cela pourra t'aider.

    Marie.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 18
    Par d�faut
    en fait pour l'instant je ve juste evaluer le temps que met la balle pour toucher la premier brique donc des que cette condition est verifi� j'ouvre une boite de dialogue me communiquant le temps
    je fais pour cela
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    CString affich;
    char buffeur[100];
    gcvt(start,2,buffeur);
    affich=buffeur;
    AfxMessageBox(affich,MB_OK,NULL);
    Il m'affiche tjs le meme resultat : 1.1e+009

    Si mon compteur marche j'envisage de le rafraichir dans la vue, mais... si il marche

    Voila, merci pour tt vos reponse en tt cas

  5. #5
    Membre exp�riment� Avatar de Rupella
    Inscrit en
    F�vrier 2005
    Messages
    286
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2005
    Messages : 286
    Par d�faut
    Tu peux utiliser ftime() je pense.
    tu stockes une premiere valeur pour l'heure de debut
    puis quand tu veux afficher le temps ecoul�, tu fais pareil avec une autre
    variable, et tu fais la difference entre les deux, et avec les fonctions de formattage de l'API, tu dois pouvoir afficher quelque chose de correct.

    regarde la :
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_crt__ftime.asp


    ca sera deja un point d'entree sur toutes les fonctions de gestion de l'heure...

  6. #6
    Membre confirm�
    Inscrit en
    Ao�t 2005
    Messages
    136
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2005
    Messages : 136
    Par d�faut
    salut,

    pour ma part, dans le programme que je gere, j'ai cod� le temps avec les fonctions de comptage des cycles �c.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		//on lit la fréquence
    		QueryPerformanceFrequency((LARGE_INTEGER*)&Freq);
    		//on recuper le compteur actuel.
    		QueryPerformanceCounter((LARGE_INTEGER*)&Start);
    		//on calcule la fin.
    		Stop = Start + ( (TempPause * Freq) ) / 1000;
     
    		do
    		{
    			QueryPerformanceCounter((LARGE_INTEGER*)&Current);
    		}while ( Current < Stop );
    le temps de la pause est dans la variables TempsPause.

    Tu pourrais utiliser ce genre de mecanisme. tu lit le compteur au d�marage, tu le lit lors du premier "impact", et tu converti...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 18
    Par d�faut
    Merci pour toutes vos reponses

    Je pense avoir trouv� une methode assez simple :

    Vue que je fesait deja appel a la fonction Ontimer() pour l'animation de la balle. Cette fonction �tait appel� avec la fonction settimer(1,300,NULL);

    J'ai donc cr�er une donn�e membre qui est incr�menter de 300ms a chaque fois que la fonction ontimer s'execute. Et s'a a l'air de super bien fonctionner.

    Voila,

Discussions similaires

  1. ERREUR PRJ0019 dans visual -> ????
    Par cathar_rhythm dans le forum MFC
    R�ponses: 1
    Dernier message: 07/06/2005, 14h00
  2. insertion d'une date dans visual foxpro
    Par yvescollet dans le forum Bases de donn�es
    R�ponses: 4
    Dernier message: 10/05/2005, 15h39
  3. Int�gration d'un SDK dans Visual Basic
    Par <-NicO-> dans le forum VB 6 et ant�rieur
    R�ponses: 2
    Dernier message: 25/02/2005, 22h53
  4. Comment utiliser Opengl dans Visual Basic 6
    Par fun31 dans le forum OpenGL
    R�ponses: 1
    Dernier message: 03/12/2004, 10h17
  5. Version de Windows dans Visual Studio !!!
    Par Jasmine dans le forum MFC
    R�ponses: 3
    Dernier message: 18/03/2004, 17h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo