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 :

Probleme avec OnTimer


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Par défaut Probleme avec OnTimer
    Bonjour tout le monde. je suis sur un petit projet... Une petite simulation de foot... j'essaye de faire ca avec MFC donc j'ai eu recour a la fonction Ontimer pour fair bouger mon ballon///
    le probleme c'est ca clignote.
    je voudrai savoir comment je fait pour rendre le mouvement fluide???
    Merci pour votre aide...

  2. #2
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    je voudrai savoir comment je fait pour rendre le mouvement fluide???
    ne pas utiliser un timer

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Par défaut
    Alors comment je fait bouger mon ballon sur le terrain????

  4. #4
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    ça clignote comment?
    Montre le code de ton OnTimer()

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Par défaut
    Voila le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    void CFootBallView::OnTimer(UINT nIDEvent) 
    { 
             // 
             //
             //On trace le terrain
    
        terrain stade(dc,800,100,100);
           
             //on trace le ballon
             //
    
    CBrush pinceau2(HS_CROSS,RGB(0,0,0));
    CPen crayon2(PS_SOLID,1,RGB(0,0,0));
    dc->SelectObject(&pinceau2);
    dc->SelectObject(&crayon2);
    
             ballon->Dessiner(dc);
        
             // On change de direction ?
             int speed=10;
          if(stop) ballon->direction(0,0);
             else 
               ballon->direction(stade,speed,speed);
             
      ballon->Bouger();
    
        CView::OnTimer(nIDEvent);
    }

    A l'affichage j'ai a chaque 100 milliem de seconde le stade qui s'affiche en blanc donc ca clignote.
    le ballon bouge normallement et a OnDraw j'ai mis set timer a 100
    Alors aidez moi c'est urgent... s'il ya une autre facon de faire... je suis ouvert a toute proposition...
    merci



  6. #6
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    En suivant la logique le stade devrait être dessiner une fois.
    Mais le ballon est celui qui est dessiné plusieurs.
    Ton objet stade devrait être tracé avant le premier appel à OnTimer dont celui-ci se contente de ne dessiner uiquement les objets mobiles tel que le ballon.

  7. #7
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Autrement dit déclare ton objet stade comme donnée membre de ta vue et utilise le dans ton OnTimer sans le redessiner.

  8. #8
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 14
    Par défaut
    Le stade est deja membre de ma classe View et j'ai essayé de l'appellé une seule fois (dans OnDraw) mais j'ai toujour eu le même resultat qa clignote..
    Stp qu'est ce que vs voulez dire par l'appeller dans Ontimer sans le creer?

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    faudrait aussi savoir comment se passe l'affichage...
    En général, on travaille dans un DC temporaire et au moment d'afficher, on envoie tout d'un coup dans le dc de la fenetre avec bitblt.
    Il existe aussi les techniques de double buffering, cela a déja été évoqué sur le forum

Discussions similaires

  1. Probleme avec la fonction Ontimer
    Par Djule dans le forum MFC
    Réponses: 8
    Dernier message: 27/11/2005, 17h52
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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