Ich will, dass man mit der Maus einfach die Sicht der Kamera wie bei einem Ego-Shoter verändern kann. Ich benutze dazu, wie im Titel steht, die tbObject-Klasse von der Tribase-Engine. Ich hab es bis jetzt so:
Move-Funktion:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
tbObject::RotateRel(tbVector3(g_pfButtons[TB_MOUSE_Y_POS] * 1.0f - g_pfButtons[TB_MOUSE_Y_NEG] * 1.0f,
g_pfButtons[TB_MOUSE_X_POS] * 1.0f - g_pfButtons[TB_MOUSE_X_NEG] * 1.0f,
0));
tbObject::Move(fTime);
|
Render-Funktion:
|
C-/C++-Quelltext
|
1
2
|
tbObject::Update();
tbDirect3D::SetTransform(D3DTS_VIEW, m_mMatrix);
|
Das Rotieren um die Y-Achse funktioniert je einwandfrei. Aber wenn ich jetzt um die X-Achse rotieren will, dann funktioniert dies nur in einer bestimmten Y-Achsen-Position. Wenn ich die Kamera dann um 90° um die Y-Achse drehe, rotiert die Camera um sich selbst, wenn ich die X-Achse Rotieren will, um sich selbst. Ich hoffe, man kann mich verstehen. Weiß jemand, wo der Fehler liegt?