⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game_terrain.h

📁 我做的毕业设计
💻 H
字号:
#ifndef GAMEENGINE_TERRAIN_INCLUDE
#define GAMEENGINE_TERRAIN_INCLUDE

#define D3DFVF_TERRAIN	D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1	//坐标信息
class CTerrain  
{

protected:
	struct TVertexBuffer
	{
		float	x,y,z;	
		float	nx,ny,nz;	//坐标信息
		float	tu,tv;
	};
protected:
	LPDIRECT3DDEVICE9		m_pDevice;
	LPDIRECT3DTEXTURE9		m_pTexture;		
	D3DMATERIAL9			m_matMaterial;
	DWORD				m_dwNumOfVertices;	
	DWORD				m_dwNumOfIndices;
	DWORD				m_dwNumOfPolygons;
	D3DXVECTOR3				m_vPos;	
	float					m_nTile;
	float					m_maxHeight;			//最大高度
	float					m_CellWidth;			//地图放大倍数	
	BYTE					*m_pHeightData;			//高度信息
public:
	long					m_nCol,m_nRow;
	D3DXMATRIX				m_matWorld;
	LPD3DXMESH				m_pMesh;
	CTerrain(LPDIRECT3DDEVICE9 pDevice, D3DVECTOR position);
	virtual ~CTerrain();
	void Initialize(char* strTerrain, char* strTexture, float cellWidth,
					float height=800,float nTile=1.0f);	
	float GetHeight(float x,float z);
	void SetWorldTransorm();
	const LPD3DXVECTOR3	GetPosition(){return &m_vPos;}
	LPD3DXMESH GetMesh(){return m_pMesh;}
	bool GetGroundRect(D3DXVECTOR3 vPos, D3DXVECTOR3* vTL, D3DXVECTOR3* vTR, D3DXVECTOR3* vBL, D3DXVECTOR3* vBR);
	bool SetMaterial(D3DCOLORVALUE Diffuse, D3DCOLORVALUE Ambient, D3DCOLORVALUE Specular, D3DCOLORVALUE Emissive, float rPower);
	void Render();	
	HRESULT GetTerrainVertex(D3DXVECTOR3 *cross,DWORD index,float u,float v);
};

#endif 

⌨️ 快捷键说明

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