Hi ich bin`s noch mal,
ich habe jetzt mal eine Funktion geschrieben mit der man die Camera an einem Parent (Der Fuß der Spielfigur) Bewegen kann:
Code:
scene::ISceneNode* cam_lookat[MAX_CAMS];
void RotateCamera(int nr, scene::ICameraSceneNode* cam, float pitch, float yaw, scene::ISceneNode* parent) {
core::vector3df parentpos(0, 0, 0);
if (parent)
parentpos = parent->getPosition();
if (!cam_lookat[nr])
cam_lookat[nr] = smgr->addCubeSceneNode(0);
if (cam_lookat[nr]) {
cam_lookat[nr]->setPosition(cam->getPosition()+parentpos);
cam_lookat[nr]->setRotation(core::vector3df(pitch, yaw, 0));
MoveSceneNode(cam_lookat[nr], core::vector3df(0, 0, 10));
cam->setTarget(cam_lookat[nr]->getPosition());
}
}
Ich habe aber leider das Problem wenn ich mich nun nach rechts oder links bewege, dass ich immer etwas zu weit in diese Richtung rotiere.
Und um so weiter ich nach unten gucke desto höher wird die deutlich abweichende Drehung
Kann mir jemand sagen was ich falsch mache?