6.2. El ratolí

El primer que cal fer per usar DirectInput és inicialitzar-lo:

Un dels dispositius més comuns a controlar es el ratolí. Cal controlar quan l’usuari mou el ratolí i quan fa clic en una posició determinada. Per a fer això primer definim el següent codi a la funció MAIN del nostre programa:

m_mouse = 0;
m_directInput->CreateDevice(GUID_SysMouse, &m_mouse, NULL);
m_mouse->SetDataFormat(&c_dfDIMouse);
m_mouse->Acquire();

Dins del bucle principal del nostre programa s'ha de cridar la funció que comprova l'estat del ratolí:

m_mouse->GetDeviceState(sizeof(DIMOUSESTATE), (LPVOID)&m_mouseState);

D’aquesta manera obtindriem les coordenades X i Y del mouse. Queden emmagatzemades a m_mouseState.
Es pot accedir a la coordenada X així:

m_mouseState.lX

i a la coordenada Y així:

m_mouseState.lY

Per accedir a l'estat dels botons s’ha de configurar la propietat rgbButtons[boto] & 0x80. A continuació hi ha un exemple amb el botó esquerre del ratolí:

Com veieu, el 0 és el corresponent al botó esquerre del ratolí. A la referència de DirectX hi ha els números corresponents a cada botó que pot arribar a tenir un ratolí. Els més comuns són:

0 – Botó esquerre, 1 – Botó dret, 2 – Botó central (rodeta)

Per a desactivar la captura d'events del ratolí cal fer el següent:

m_keyboard->Unacquire();
m_keyboard->Release();

No hay comentarios:

Publicar un comentario