[DirectX] DirectInput

Le côté programmation du développement d'un jeu vidéo.

DirectInput

Messagepar bilaloch » 17 Avr 2006, 18:45

Bonjour a tous,

J'ai suivi sur le site le tutorial pour l'utilisation de DirectInput, mais je souhaiterais avoir l'url des deux modules d'utilisation qu'il cite a la fin du cours. Je vous explique ma situation. Je sais initialiser DirectInput, et recuperer les données. Mais comment je saurais quelles données correspondent a quelles touches ?

Code: Tout sélectionner
VOID InitInput (HWND hWnd)
{
   LPDIRECTINPUT lpdi;
   DirectInputCreate(hInstance,DIRECTINPUT_VERSION,&lpdi,NULL);

   LPDIRECTINPUTDEVICE lpdiPeriph;
   lpdi-> CreateDevice(GUID_SysMouse,&lpdiPeriph,NULL);

   lpdiPeriph-> SetDataFormat(&c_dfDIMouse);

   DIPROPDWORD dipw=
   {
   // En-tête
   {
   sizeof(DIPROPDWORD),
   sizeof(DIPROPHEADER),
   0,
   DIPH_DEVICE,
   },
   // Données
   BUFFERSIZE
   };
   lpdiPeriph-> SetProperty(DIPROP_BUFFERSIZE,& dipw.diph);
   lpdiPeriph-> SetCooperativeLevel(hWnd,DISCL_EXCLUSIVE | DISCL_FOREGROUND);
   lpdiPeriph-> Acquire();

}


VOID LireInput (int Xpos, int Ypos, int Xposp, int Yposp, DWORD Button, DWORD Appui)
{
   DIDEVICEOBJECTDATA buffer[BUFFERSIZE];
   DWORD dwItems=BUFFERSIZE;
   // On lit
   lpdiPeriph-> GetDeviceData(sizeof(DIDEVICEOBJECTDATA),buffer,& dwItems,0);
   // Et on traite
   for(DWORD d=0;d< dwItems;d++)
   {
      switch(buffer[d].dwOfs)
      {
      // Traitement différent selon que l'on utilise le clavier ou la souris
      }
   }
}


Dans la variable "Button" j'aimerais savoir quels boutons de la souris l'utilisateur appuie. Dans la variable "Appui" j'aimerais savoir quel type d'appui (Up ou Down). Je voudrais connaitre, lorsque l'on clique avec le bouton gauche de la souris, la position x et y de la souris dans l'application en pixels ("Xpos" et "Ypos" utilisé pour la selection deja programmé), et lorsque l'on clique avec le bouton droit, de combien de pixels la souris a avancé (nombre positif) ou reculé (nombre negatif) dans l'axe x et y ("Xposp" et "Yposp" utilisé pour la rotation Y et X deja programmé). Comment dois je y remedier et quand initialiser DirectInput ?

Je travaille sous Visual C++ 2005...

Merci beaucoup... :)
bilaloch
Hello World, I'm new !
 
Messages: 40
Inscription: 13 Avr 2006, 10:41

Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

cron