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