So habe nun meine Versuche getan:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
Vector3 V;
V = m_Camera->GetCameraPos() - m_ObjectHandler->GetSelectedObjectPosition();
vRot.y = atan2f(V.y, V.x);
//vRot.x = acosf( V.z / ( sqrtf(V.x*V.x + V.y*V.y + V.z*V.z) ) );
vRot.x = atan2f(sqrtf(V.x*V.x + V.y*V.y + V.z*V.z), V.z);
vRot.x -= m_Camera->GetCameraAngleX() /*- vRot.x*/;
vRot.y -= m_Camera->GetCameraAngleY() /*- vRot.y*/;
|
Leider ohne Erfolg. Die Kamera dreht sich irgendwo hin. Wenn ich dann noch die vRot.xy mit DEG_TO_RAD in Radiant umwandle dreht sie sich zwar nicht unkontrolliert, aber sie dreht sich Richtung (0,0,1) und bleibt kurz vorher stehen. Irgendwas stimmt da noch nicht...
In jedem Frame wird übrigens mit:
|
C-/C++-Quelltext
|
1
2
|
m_Camera->SetCameraAngleX( m_Camera->GetCameraAngleX() + vRot.x * fTime );
m_Camera->SetCameraAngleY( m_Camera->GetCameraAngleY() + vRot.y * fTime );
|
gearbeitet.
Wer den Fehler findet bitte schreiben
Danke