begin process at 2010 03 14 22:36:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

DirectX

 > 

perte de device avec dinput


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

perte de device avec dinput

mardi 31 mai 2005 à 14:35:26 | perte de device avec dinput

chamoine

J'ai un soucis lorsque j'agrandi mon application après l'avoir réduite.
Je suis obligé de killer celle-ci....
J'arrive parfaite a récupérer mes surfaces et le clavier mais pas  la souris sa bloque.

Voici mon code servant a géré la souris:
// On remet a zero les boutons
    m_bButton0 = m_bButton1 = FALSE;

    DIDEVICEOBJECTDATA data;
    BOOL bTermine = FALSE;
    DWORD dwNumElements = 1;
   
    // Nettoyage de la structure DIDEVICEOBJECTDATA
    memset(&data, 0, sizeof(DIDEVICEOBJECTDATA));
   
    // Récupération des infos sur la souris
    while(!bTermine)
    {
        // Pointeur pour gérer la souris
        if(m_dSouris->GetDeviceData(sizeof(DIDEVICEOBJECTDATA), &data,
            &dwNumElements, 0) == DIERR_INPUTLOST)
        {
            if(m_dSouris->Acquire() == DI_OK)
                m_dSouris->GetDeviceData(sizeof(DIDEVICEOBJECTDATA), &data, &dwNumElements, 0);
        }
       
        // Calcul la nouvelle position et vérifie si un bouton a été cliqué
        switch(data.dwOfs)
        {
        case DIMOFS_X:
            m_iCurseurXPos += data.dwData;
            break;

        case DIMOFS_Y:
            m_iCurseurYPos += data.dwData;
            break;
        // bouton gauche
        case DIMOFS_BUTTON0:
            // touche enfoncée
            if (data.dwData & 0x80)
                m_bButton0 = TRUE;
            break;
        // bouton droite
        case DIMOFS_BUTTON1:
            // touche enfoncée
            if (data.dwData & 0x80)
                m_bButton1 = TRUE;
            break;
        }
   
        // On a fini :-)
        if (dwNumElements == 0)
            bTermine = TRUE;
   }

Si vous avez unr idée se n'est pas de refut
mardi 31 mai 2005 à 16:03:29 | Re : perte de device avec dinput

chamoine

Réponse acceptée !
Enfaite j'ai trouvé en ajoutant une variable servant de compteur évitant un appel directe du device de la souris

Donc si quelqu'un a le même problème voila ma soluce:
on déclare la variable int iRun = 0;

dans la boucle du jeu:
while(TRUE)
{
    ....
    if(iRun++ >= 2)
        GestionSouris();
    ....
}

dans la fonction traitant les messages de windows:
switch(msg)
    {
    case WM_ACTIVATE:
        // Activate/déactivate le jeu
      if (wParam == WA_INACTIVE)
      {
        if(m_pInput != NULL)
            m_pInput->InputDeactive();
        SetEtat(FALSE);
      }
      else
      {
        if(m_pInput != NULL)
            m_pInput->InputActive();
        iRun = 0;
        SetEtat(TRUE);
      }
      return 0;
....

voili voilou


Cette discussion est classée dans : data, case, souris, dideviceobjectdata, dwnumelements


Répondre à ce message

Sujets en rapport avec ce message

DirectInput ????? [ par Galmiza ] C'est hallucinant mais c'est comme ca, la variable xMousePos ne fonctionne pas (xMousePos semble osciller tres aleatoirement autour de 0 quand je bou Configuration souris SDL [ par darkane78 ] Bonjour,J'aimerais bien réalisé un jeu de dame, seulement je suis bloqué au niveau du configuration de la souris.Je voudrais pouvoir cliquer sur un pi savoir quel case d'un tableau bidimensionel est lié au clic de la souris [ par juju116 ] bonjour j'ai un petit souci de comprehension j'ai un tableau declaré ainsi: int tableau[3][3]; tout mes cases sont intialisé à zero à l'aide de deux b Déplacement souris Qt c++ [ par victor110 ] Bonjour à tous, J'utilise depuis peu la librairie Qt et je voudrais détecter le mouvement de la souris dans le widget mais aussi en dehors. Je ne tro Sockets [ par Suxyt ] Bonjour à tous, Actuellement, je travaille sur un projet qui consiste d'envoyer et de recevoir des données en construisant l'en-tête soi-même. Pour e Projet jeux d'échecs : déplacement d'une pièce dans une case [ par Razily ] Bonjour à tous , je débute en C++ et je travaille sur projet de jeu d'échec [^^sad1] en ce moment ; dans un premier je voulais simplifier les chose en STL : Comment afficher les élements dans un vector dans un endroit voulu [ par Razily ] Bonjour à tous ; je voudrai avoir de ce code un affichage de ce genre: [code=cpp] 1 a b c d e f g h 1 8 t c f d r f c t 8 7 p p p p p p p p 7 6 _ _ lecteur audio [ par diaso ] bonjour, je développe un lecteur audio, sur le qu'elle je veux que le son se joue selon la position du curseur, sur le spectre qui affiche les ondes q data time control [ par dorras7 ] Bonjour, J'ai voulu savoir si le composant data time control existe dans visual c++ 2005 (j'ai besoin de lui pour un projet MFC) Merci Enregistrement de chaque valeur dans un tableau [ par fashionhacker ] Bonsoir, Mon pseudo est pitoyable, en effet j'ai cré le compte il y a longtemps. :) Je voudrais savoir s'il est possible et comment enregistrer chaqu


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales