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

DirectX Discussion :

freez de l'affichage - fenetre DirectX et souris


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut freez de l'affichage - fenetre DirectX et souris
    Bonjour bonjour ...

    Voilou je vous explique mon petit problème.
    Mon application utilise la souris pour orienter la caméra ou la déplacer suivant le bouton de la souris qui est enfoncé, mais voilà petit problème ... lorsque j'enfonce le bouton de la souris l'image se fixe ....

    Après avoir relaché le bouton, l'affichage se met à jour et la caméra s'est bien déplacée ...

    Quelqu'un à une idée ?

    je penche pour :
    - la boucle de gestion des message Windows
    - un paramètre lors de la création de la fenêtre
    - un paramètre lors de l'instanciation de l'interface de la souris avec directinput8

    Mais je n'ai rien modifié sur ces trois parties ...

  2. #2
    Membre extrêmement actif

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    pour récupérer les événements, tu utilises GetMessage ou PeekMessage? (le dernier étant celui qu'il faut utiliser)

    le plus simple serait que tu postes le code.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut
    rahhhh ... je suis vraiment trop bête ....
    encore une foi c'est bien de ma faute ...

    voici le code avec erreur :

    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
     
    void GamePlay()
    {
    	if( interfaceJoueur->btDroitSouris.valeur)
    	{
    		matriceCAM->SetRotationPlusEgale(interfaceJoueur->tourneGauche.valeur-interfaceJoueur->tourneDroite.valeur,0,0,obj_Camaro->Matrice()->Position());
    	}
    	else if( interfaceJoueur->btGaucheSouris.valeur)
    	{
    		matriceCAM->Avance_De(interfaceJoueur->pencheAv.valeur-interfaceJoueur->pencheAr.valeur);
    	}
    	else
    	{
    		matriceCAM->SetRotationPlusEgale( ((interfaceJoueur->molHautSouris.valeur*1000)-(interfaceJoueur->molBasSouris.valeur*1000)),interfaceJoueur->tourneGauche.valeur-interfaceJoueur->tourneDroite.valeur,interfaceJoueur->pencheAv.valeur-interfaceJoueur->pencheAr.valeur,obj_Camaro->Matrice()->Position());
     
    		matriceCAM->UpDateMatrice();
    		Cam->Set_PositionEtCible(matriceCAM);
    	}
    };
    et le code corrigé :

    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
     
    void GamePlay()
    {
    	if( interfaceJoueur->btDroitSouris.valeur)
    	{
    		matriceCAM->SetRotationPlusEgale(interfaceJoueur->tourneGauche.valeur-interfaceJoueur->tourneDroite.valeur,0,0,obj_Camaro->Matrice()->Position());
    	}
    	else if( interfaceJoueur->btGaucheSouris.valeur)
    	{
    		matriceCAM->Avance_De(interfaceJoueur->pencheAv.valeur-interfaceJoueur->pencheAr.valeur);
    	}
    	else
    	{
    		matriceCAM->SetRotationPlusEgale( ((interfaceJoueur->molHautSouris.valeur*1000)-(interfaceJoueur->molBasSouris.valeur*1000)),interfaceJoueur->tourneGauche.valeur-interfaceJoueur->tourneDroite.valeur,interfaceJoueur->pencheAv.valeur-interfaceJoueur->pencheAr.valeur,obj_Camaro->Matrice()->Position());
     
    	}
     
    	matriceCAM->UpDateMatrice();
    	Cam->Set_PositionEtCible(matriceCAM);
     
    };
    Voilà en gros je ne mettais la matrice de la caméra à jour que si les bouton de la souris n'était pas enfoncés. D'où cette impression de freez ...

    Je suis trop bête ...

    Mais bon merci pour ta réponse Stardeath Ca fait plaisir de voir qu'il y a toujours du monde pour aider sur ce forum !!!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 25
    Par défaut
    ouais bon en faite vous me direz c'est pas super optimisé ma correc, j'update la matrice même quand il n'y a pas eu de mouvement ...
    Mais j'arrangerais ça ... promis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb Affichage fenetre
    Par TiNoUcHe dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 15/03/2006, 10h21
  2. Detection d'une fenetre avec la souris
    Par vivi2701 dans le forum C++
    Réponses: 6
    Dernier message: 09/06/2005, 13h37
  3. redimensionnement d'une fenetre DirectX
    Par tibyann dans le forum DirectX
    Réponses: 3
    Dernier message: 11/06/2004, 13h09
  4. [MFC] affichage fenetre
    Par mulot49 dans le forum MFC
    Réponses: 5
    Dernier message: 08/06/2004, 19h17
  5. fenetre directX dans mfc
    Par tibyann dans le forum DirectX
    Réponses: 1
    Dernier message: 31/05/2004, 12h09

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