|
DXUT中的CModelViewerCamera 类可以实现现在网游中的第三人称视角吗?
就是左键单击控制人的目标位置,右键拖动便围绕角色旋转,滑轮则缩放视角。
我看了一下里面的函数:
void SetViewParams( D3DXVECTOR3* pvEyePt, D3DXVECTOR3* pvLookatPt );
void SetButtonMasks( int nRotateModelButtonMask = MOUSE_LEFT_BUTTON, int nZoomButtonMask = MOUSE_WHEEL, int nRotateCameraButtonMask = MOUSE_RIGHT_BUTTON );
void SetAttachCameraToModel( bool bEnable = false ) ;
void SetWindow( int nWidth, int nHeight, float fArcballRadius=0.9f );
void SetRadius( float fDefaultRadius=5.0f, float fMinRadius=1.0f, float fMaxRadius=FLT_MAX );
void SetModelCenter( D3DXVECTOR3 vModelCenter );
void SetLimitPitch( bool bLimitPitch );
void SetViewQuat( D3DXQUATERNION q );
void SetWorldQuat( D3DXQUATERNION q );
缩放效果用SetButtonMasks()可以达到,围绕角色旋转结果却把整个世界旋转了(SetLimitPitch 设为true也没什么变化)。把SetModelCenter()写到FrameMove里却没有实现跟随角色移动。。。不知哪位高手能来指导一下CModelViewerCamera 的用法以实现第三人称跟随视角: ) |
|