Hallo erstmal
Ich möchte, vorerst nur in "Modelle", gerne eine Maussteuerung einbauen.
Scheinbar liefert die Maus keinerlei Informationen mit
der
|
Quellcode
|
1
2
3
4
|
if(MouseState.rgbButtons[0] & 0x80)
{
MessageBox(NULL,"MButton[0]","Test",NULL);
}
|
und mit der Abfrage
|
Quellcode
|
1
|
tbWriteToLog("%f,%f,%f",MouseState.lX,MouseState.lY, MouseState.lZ);
|
UpdateMouseState sieht bei mir so aus:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/ Abfragen des Mausstatus
int UpdateMouseState(HWND hDlg)
{ HRESULT r;
r = g_pMouse->Poll();
if(r == DIERR_INPUTLOST)
{
// Zugriff verloren - erneut versuchen
g_pMouse->Acquire();
}
g_fCameraRot += (0.01+(1* (float)(MouseState.lY)));
g_fCameraUpDown +=(0.01+(1 *(float)(MouseState.lX)));
}
return TB_OK;
}
|
in der moveproc() siehts so aus
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
tbVector3 vCameraDir;
// Den Zeitzähler aktualisieren
g_fTime += fNumSecsPassed;
// Tastatursteuerung...
vCameraDir = tbVector3(sinf(g_fCameraRot) * cosf(g_fCameraUpDown),
sinf(g_fCameraUpDown),
cosf(g_fCameraRot) * cosf(g_fCameraUpDown));
UpdateMouseState(tbDirect3D::GetWindow());
if(GetAsyncKeyState(VK_LEFT)) g_fCameraRot -= 1.0f * fNumSecsPassed;
if(GetAsyncKeyState(VK_RIGHT)) g_fCameraRot += 1.0f * fNumSecsPassed;
if(GetAsyncKeyState(VK_UP)) g_fCameraUpDown -= 1.0f * fNumSecsPassed;
if(GetAsyncKeyState(VK_DOWN)) g_fCameraUpDown += 1.0f * fNumSecsPassed;
if(GetAsyncKeyState(VK_ADD)) g_vCameraPos += vCameraDir * 15.0f * fNumSecsPassed;
if(GetAsyncKeyState(VK_SUBTRACT)) g_vCameraPos -= vCameraDir * 15.0f * fNumSecsPassed;
return TB_OK;
|
in WinMain habe ich folgende Aufrufe:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
if(FAILED(DirectInput8Create(hInstance, // Instanz
0x0800, // Version
IID_IDirectInput8, // Schnittstellenversion
(void**)(&g_pDInput), // Doppelzeiger auf Objekt
NULL))) // nicht wichtig
{
MessageBox(NULL, "IDirectInput8-Objekt konnte nicht erstellt werden!",
"Fehler", MB_OK | MB_ICONEXCLAMATION);
return 1;
}
if(InitMouse(tbDirect3D::GetWindow()))
{
MessageBox(NULL, "Maus konnte nicht initialisiert werden!",
"Fehler", MB_OK | MB_ICONEXCLAMATION);
}
UpdateMouseState(tbDirect3D::GetWindow());
|
was hab ich da falsch gemacht?
danke