ccamera.h

来自「骨骼动画 此程序演示了如何在你的游戏中使用骨骼动画技术。」· C头文件 代码 · 共 55 行

H
55 行
字号
#ifndef _CCamera_H_
#define _CCamera_H_

#include "FileHeads.h"
#include "CTerrain.h"

class CCamera
{
public :
	enum CameraType	{LANDOBJECT,AIRCRAFT };
	CCamera();
	CCamera(CameraType caneraType);
	~CCamera();
	void strafe(float units);//左右
	void fly(float units); //上下
	void walk(float units);//前后
	
	/////摄像机的3个方向
	void pitch(float angle);//right
	void yaw(float angle);//up
	void roll(float angele);//look

	void getViewMatrix(D3DXMATRIX *V);
	void setCameraType(CameraType cameraType);//设置摄像机的类型
	void getPosition(D3DXVECTOR3 *pos);
	void setPosition(D3DXVECTOR3 *pos);

	void getRight(D3DXVECTOR3 *right);
	void getUp(D3DXVECTOR3 *up);
	void getLook(D3DXVECTOR3 *look);
	/////鼠标和按键监听/////
	virtual LRESULT HandleMessage(HWND hWnd, UINT msg, WPARAM wParam,LRESULT lParam);
	virtual void ProcesKey(LPDIRECT3DDEVICE9 Device,float fElapsedTime);
	/// 将视矩阵和投影矩阵设置给D3D设备
	virtual void Update( LPDIRECT3DDEVICE9 Device, float fElapsedTime );

	POINT		m_LastPoint;
	/// 上一个鼠标位置
	bool		m_bIsRot;
	/// 用户是否平移了摄像机
	bool		m_bIsTrans;
	/// 摄像机的移动速度,单位/秒
	float		m_fVelocity;//相当于类中 方法的形参units

private:
	CameraType _cameraType;
	D3DXVECTOR3 _right;
	D3DXVECTOR3 _up;
	D3DXVECTOR3 _look;
	D3DXVECTOR3 _pos;

};


#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?