www.pudn.com > DZY_Game.rar > Game_SkyBox.h


#pragma once 
#include "stdafx.h" 
#include "Game_DisplayObject.h" 
#include "Game_App.h" 
 
class Game_SkyBox:public Game_DisplayObject{ 
		D3DXVECTOR3				m_vPos;			  //摄像机位置 
		LPDIRECT3DVERTEXBUFFER9	m_pVB;			  //顶点缓冲区指针 
		LPDIRECT3DVERTEXBUFFER9	m_pVBSky;		  //云顶点缓冲 
		LPDIRECT3DINDEXBUFFER9	m_pIBSky;		  //云索引缓冲 
		LPDIRECT3DTEXTURE9		m_pTexture[7];	  //贴图数组 
 
		UINT					m_nSegment;		  //天空盒每行矩形个数 
		UINT					m_nSkyTile;		  //云每行矩形个数 
		float					m_fWidth;         //与摄像机距离 
		float					m_uSpeed;         //动态贴图u坐标的变化速度 
		float					m_vSpeed;		  //动态贴图v坐标的变化速度 
		float					m_nAngle;		  //苍穹的弧度 
		char*					m_cStrSkyName; 
 
		struct VERTEX_BOX{ 
			FLOAT	x,y,z;						 
			FLOAT   nx,ny,nz; 
			FLOAT	tu,tv; 
		}; 
 
		const static DWORD D3DFVF_SKYBOX = D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1; 
	public: 
		Game_SkyBox(FLOAT width,char * strSkyName); 
		~Game_SkyBox(); 
		 
		HRESULT CreateSkyBox(char *strTextureA6[]=NULL);//创建天空盒并初始化顶点数组 
		HRESULT LoadSkyBox(char * strName);//通过一个cfg文件获得贴图名称 
		HRESULT InitialiseVertexBuffer();//初始化顶点缓冲 
		virtual void Render();//渲染天空盒 
		virtual void FrameMove();//设置世界矩阵 
		virtual void InitObject(char * strName); 
 
		VOID SetPosition(D3DXVECTOR3);//设置m_vPos 
		WCHAR* CreateWideStringFromCharString(const char *c_str); 
};