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

📄 drawex.h

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////////////
//
//	File. CDrawEx.h
//	Note.
//	..by kallru
//
////////////////////////////////////////////////////////////////////////////////////////	

#ifndef _CDRAWEX_
#define _CDRAWEX_

struct SPRITE_VERTEX
{
	float x,y,z;
	float u,v;
};

struct MULTI_SPRITE_VERTEX
{
	float x,y,z;
	float u1,v1;
	float u2,v2;
	float u3,v3;
};

struct SPRITE_TEXTURE
{
	LPDIRECT3DTEXTURE9 pTex;
	char szSpriteName[256];
	int m_iWidth;
	int m_iHeight;

	SPRITE_TEXTURE()
	{
		pTex = NULL;
		m_iWidth = 0;
		m_iHeight = 0;
	}

	~SPRITE_TEXTURE()
	{
		if(pTex != NULL)
			SAFE_RELEASE(pTex);
		ZeroMemory(szSpriteName,sizeof(szSpriteName));
	}
};

struct BACK_TEXTURE
{
	SPRITE_TEXTURE SprTexture[12];
};

#define D3DFVF_SPRITEVERTEX ( D3DFVF_XYZ | D3DFVF_TEX1)
#define D3DFVF_MULTIVERTEX (D3DFVF_XYZ | D3DFVF_TEX3 )



#define FILL_MULTIVERTEX( v, ax, ay, az, atu1, atv1, atu2, atv2, atu3, atv3 )  \
{															\
	v.x = ax; v.y = ay; v.z = az; v.u1 = atu1; v.v1 = atv1; \
	v.u2 = atu2; v.v2 = atv2; v.u3 = atu3; v.v3 = atv3; 	\
}

//#define FILL_MULTIVERTEX( v, ax, ay, az, atu1, atv1, atu2, atv2, atu3, atv3 )  \
//{	v.x = ax; v.y = ay; v.z = az; v.u1 = atu1; v.v1 = atv1; v.u2 = atu2; v.v2 = atv2; }

class CDrawEx
{
public:
	CDrawEx();
	CDrawEx(LPDIRECT3DDEVICE9 pd3dDevice);
	~CDrawEx();
	void Release();
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//
//	观俊辑 荤侩且 窃荐甸
//
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
	HRESULT LoadImageFile(char *FileName, SPRITE_TEXTURE *pTexture, D3DCOLOR KeyColor=D3DCOLOR_XRGB(255,0,255)); //metaljack 距埃 荐沥
	SPRITE_TEXTURE* LoadImageFileEx(char *FileName, D3DCOLOR KeyColor=D3DCOLOR_XRGB(255,0,255)); //metaljack 距埃 荐沥
	void	ReleaseImageFile();
			
	HRESULT InitDevice(LPDIRECT3DDEVICE9 pd3dDevice);
	
	SPRITE_TEXTURE*	FindTexture(char *FileName);

	HRESULT CreateSpriteBuffer();

	void DrawSpriteEx(SPRITE_TEXTURE &pTexture, float x=0.0f, float y=0.0f, DWORD dwAlpha=255,
						DWORD dwWidth=0, DWORD dwHeight=0,
						float AngleX=0.0f, float AngleY=0.0f, float AngleZ=0.0f);

	void SetMultiSpriteEx( float x=0.0f, float y=0.0f, DWORD dwWidth=0, DWORD dwHeight=0,
							float AngleX=0.0f, float AngleY=0.0f, float AngleZ=0.0f);

	HRESULT Lock(UINT iSize,void **pData, DWORD dwFlage=0)	{ return m_pVertexBuffer->Lock(0,iSize,pData,dwFlage); }
	HRESULT Unlock()	{ return m_pVertexBuffer->Unlock(); }

	LPDIRECT3DVERTEXBUFFER9 GetMultiVBSmall() { return m_pVtxMultiBufferSmall; }

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//
//	救俊辑 荤侩窍瘤父, 观俊辑档 荤侩 且 荐 乐霸...
//
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
	void DrawSprite(SPRITE_TEXTURE &pTexture, DWORD dwAlpha);
	void DrawMultiSprite( SPRITE_TEXTURE * pTexture1, SPRITE_TEXTURE * pTexture2, 
						DWORD dwAlpha = 255, LPDIRECT3DVERTEXBUFFER9 lpVB = NULL );
	void RotateSprite(float AngleX, float AngleY, float AngleZ, float x, float y);
	void TranslateSprite(float x, float y, float z);
	void ScaleSprite(DWORD dwWidth,DWORD dwHeight);	//祈狼甫 困秦辑 DWORD
	
	void DrawSpriteFadeOut(SPRITE_TEXTURE &pTexture, DWORD FadeTime, float x=0.0f, float y=0.0f, DWORD dwAlpha=255,
						DWORD dwWidth=0, DWORD dwHeight=0,
						float AngleX=0.0f, float AngleY=0.0f, float AngleZ=0.0f);
		
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-==-=-==-=-=-=-=-=-==-=-==-=-=-=-=-=-=-=-=-
//
//	扁鸥 鞘夸茄 蜡瓶~?
//
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-==-=-==-=-=-=-=-=-==-=-==-=-=-=-=-=-=-=-=-
	// 舅颇蔼 荤侩 : dwColor 牢荐俊 D3DCOLOR_ARGB( A, R, G ,B ); 肺 林搁 凳.
	void CreateFillRectangle(SPRITE_TEXTURE *pOut, int nWidth, int nHeight, DWORD dwColor);
	void CreateFillRectangleEx(SPRITE_TEXTURE *pOut, int nWidth, int nHeight, DWORD dwColor, UINT MipLevels);	//  褂饭骇 荤侩
	void FillRectangle(int nX, int nY, int nWidth, int nHeight, DWORD dwColor=0xffffffff, float z=0.0f, float fAngle=0.0f);
	// 硅版 弊府扁.
	void LoadBackGround(char *FileName, BACK_TEXTURE *pTexture, DWORD Keycolor = D3DCOLOR_XRGB(255,0,255));
	void DrawBackGround(BACK_TEXTURE &pTexture, DWORD dwAlpha);
	
	void Draw2DLine(int isrcX, int isrcY, int idestX, int idestY, DWORD dwColor1, DWORD dwColor2 = NULL);
	void Draw2DBox(int isrcX, int isrcY, int idestX, int idestY, int Border, DWORD dwColor1, DWORD dwColor2 = NULL);

	void ReturnToVertexBuffer();
	void DrawSpriteMoveToRotateCenter(SPRITE_TEXTURE &pTexture, float x, float y, float centerX, float centerY, float centerZ,
		DWORD dwAlpha=255, DWORD dwWidth=0, DWORD dwHeight=0,
						float AngleX=0.0f, float AngleY=0.0f, float AngleZ=0.0f);

	void DrawSpriteToHeap(SPRITE_TEXTURE &pTexture, float x, float y, DWORD dwAlpha,
						float srcX, float srcY, float destX, float destY);

private:

	LPDIRECT3DDEVICE9 m_pd3dDevice;
	LPDIRECT3DVERTEXBUFFER9 m_pVertexBuffer;
	LPDIRECT3DVERTEXBUFFER9 m_pVtxMultiBuffer;
	LPDIRECT3DVERTEXBUFFER9 m_pVtxMultiBufferSmall;
	LPDIRECT3DVERTEXBUFFER9 m_pVB_Line;	

	D3DXMATRIXA16 m_Rotation;
	D3DXMATRIXA16 m_Translation;
	D3DXMATRIXA16 m_Scaling;

	// 橇肺璃记 青纺 2俺
	//D3DXMATRIXA16 m_Proportion;	// 厚啦 扁霖
	D3DXMATRIXA16 m_Pixel;		// 侨伎 扁霖

	D3DXMATRIXA16 m_ViewMatrix; // 归诀侩

	vector<SPRITE_TEXTURE *> m_vlSprite;
};

#endif

⌨️ 快捷键说明

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