begin process at 2010 02 10 06:31:44
  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 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 Lecture Data Runs - système NTFS [ par mzhunix ] Bonjour,J'aimerais savoir comment me débrouiller avec les data runs récupérés dans un attribut non résident de la mft.En fait, je voudrais les données problème de template sous linux (qui par contre compile et tourne sous windows !!!!) [ par orus35 ] Bonjour, Peut-être que vous allez pouvoir m'éviter de me prendre la tête pdt 107 ans, mon code compile et tourne bien sous 2009. par contre sous linux retranscription fichier imprimante [ par KON666 ] Bonjour,J'ai un appareil de mesure actuellement relié sur une imprimante et au lieu de l'imprimante je l'ai relié à mon pc via le port parallèle et j' Keylogger probleme code [ par rebelattack ] bonjour,J'ai un probleme lorsque je veux compiler ce code. Je suis débutant, mais j'ai réunis plusieur code et çà doit etre la le probleme. donc lorsq Récupérer la valeur (vrai - faux) d'une case à cocher [ par mahojul ] Bonjour à tous, Je travaille avec Visual C++ 6 sur un OS Windows XP Pro SP3 ... je précise que je débute vraiment dans ce language ... <img src Algorithme tableaux [ par IR83 ] Salut!!Je ne suis pas programmeuse, je travaille sur des données. Et je veux faire du tri dans ces données.J'ai un tabeaux (en .txt) avec un nombre de


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,546 sec (3)

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