0

我正在创建一个 3d 飞行游戏并使用 DXUTCamera 作为我的视图。

我可以让相机拍摄角色位置,但我想以第三人称观看我的角色。

这是我第一人称视角的核心

//Put the camera on the object.                     

        D3DXVECTOR3 viewerPos;
        D3DXVECTOR3 lookAtThis;
        D3DXVECTOR3 up         ( 5.0f, 1.0f, 0.0f );
        D3DXVECTOR3 newUp;
        D3DXMATRIX matView;

        //Set the viewer's position to the position of the thing.

        viewerPos.x = character->x;   viewerPos.y = character->y;
        viewerPos.z = character->z;


        // Create a new vector for the direction for the viewer to look

        character->setUpWorldMatrix();
        D3DXVECTOR3 newDir, lookAtPoint;
        D3DXVec3TransformCoord(&newDir, &character->initVecDir,
                                      &character->matAllRotations);

        // set lookatpoint

        D3DXVec3Normalize(&lookAtPoint, &newDir);
        lookAtPoint.x += viewerPos.x;
        lookAtPoint.y += viewerPos.y;
        lookAtPoint.z += viewerPos.z;

        g_Camera.SetViewParams(&viewerPos, &lookAtPoint);

那么有人知道如何将相机移动到第三人称视角吗?最好是定时的,这样相机运动就会有一个平稳的动作。(我希望我可以编辑这段代码而不是引入另一个相机类)

4

1 回答 1

1

好吧,我相信我可以在理论上帮助您从第一人称视角转变为第三人称视角。很抱歉我不能给你实际的代码,但我是用手机打字的。您必须将您的视图开始的点稍微放在播放器后面,并让lookAtPoint 来查看播放器。另外,一定要让 , x , y 和 z 按照第三人称的逻辑移动。希望有帮助。如果它根本没有帮助,我很抱歉,但是用手机打字对我来说有点困难,我无法解释它真的很好。

于 2013-06-13T18:12:42.000 回答