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

📄 water.cpp

📁 这是我写的一个很简单得关于水的类(开发网游的),可导入程序中实现!
💻 CPP
字号:
#include "Water.h"
CAlphaTextuer::CAlphaTextuer(LPDIRECT3DDEVICE9 pd3dDevice,LPSTR TexturName)
{
	m_pd3dDevice=pd3dDevice;
	m_TexturName=TexturName;
	m_vSacle=D3DXVECTOR3(1.0f,1.0f,1.0f);
	m_vTrans=D3DXVECTOR3(0.0f,0.0f,0.0f);
	m_pointX[0]=-1.0f;
	m_pointX[1]=-3.0f;
	m_fRotatle=0.0f;
	m_pVB=NULL;
	InitVB();
}
void CAlphaTextuer::InitVB()
{
	D3DXCreateTextureFromFile(m_pd3dDevice,m_TexturName,&m_pTextuer);
	m_pd3dDevice->CreateVertexBuffer(sizeof(m_cvVertor),0,D3DFVF_VEFTORFROM,D3DPOOL_DEFAULT,&m_pVB,NULL);
	VERTORFROM cvVertor[]={	{-1.0f,0.0f,1.0f,0.0f,0.0f},//1
										{1.0f,0.0f,1.0f,1.0f,0.0f},//2
										{-1.0f,0.0f,-1.0f,0.0f,1.0f},//3
										{1.0f,0.0f,-1.0f,1.0f,1.0f},//4
										{-3.0f,0.0f,1.0f,0.0f,0.0f},//5
										{-1.0f,0.0f,1.0f,1.0f,0.0f},//6
										{-3.0f,0.0f,-1.0f,0.0f,1.0f},//7
										{-1.0f,0.0f,-1.0f,1.0f,1.0f},};//8
	for (int i=0;i<8;i++)
	{
		m_cvVertor[i].tu=cvVertor[i].tu;
		m_cvVertor[i].tv=cvVertor[i].tv;
		m_cvVertor[i].x=cvVertor[i].x;
		m_cvVertor[i].y=cvVertor[i].y;
		m_cvVertor[i].z=cvVertor[i].z;
	}
	m_pVB->Lock(0,sizeof(m_cvVertor),(void**)&m_pVertor,0);
	memcpy(m_pVertor,m_cvVertor,sizeof(m_cvVertor));
	m_pVB->Unlock();
}
void CAlphaTextuer::CopyToVB()
{
	m_cvVertor[2].x=m_cvVertor[0].x=m_pointX[0]; 
	m_cvVertor[3].x=m_cvVertor[1].x=m_pointX[0]+2.0f;
	m_cvVertor[4].x=m_cvVertor[6].x=m_pointX[1];
	m_cvVertor[5].x=m_cvVertor[7].x=m_pointX[1]+2.0f;
	m_pVB->Lock(0,sizeof(m_cvVertor),(void**)&m_pVertor,0);
	memcpy(m_pVertor,m_cvVertor,sizeof(m_cvVertor));
	m_pVB->Unlock();
}
void CAlphaTextuer::Move()
{
	if (m_pointX[0]<1.0f)
	{
		m_pointX[0]+=m_fSpeed;
	} 
	else
	{
		m_pointX[0]=-2.984f;
	}
	if (m_pointX[1]<1.0f)
	{
		m_pointX[1]+=m_fSpeed;
	} 
	else
	{
		m_pointX[1]=-2.984f;
	}
	CopyToVB();
}
void CAlphaTextuer::Render()
{
	D3DXMATRIXA16 matWorld,matTrans,matSacle,matRotatle;
	D3DXMatrixIsIdentity(&matWorld);
	D3DXMatrixTranslation(&matTrans,m_vTrans.x,m_vTrans.y,m_vTrans.z);
	D3DXMatrixScaling(&matSacle,m_vSacle.x,m_vSacle.y,m_vSacle.z);
	D3DXMatrixRotationZ(&matRotatle,m_fRotatle);
	matWorld=matRotatle*matTrans*matSacle;
	m_pd3dDevice->SetTransform(D3DTS_WORLD,&matWorld);

	m_pd3dDevice->SetTexture(0,m_pTextuer);
    
	
	m_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,			 true);
	m_pd3dDevice->SetRenderState(D3DRS_SRCBLEND,		D3DBLEND_SRCALPHA);
	m_pd3dDevice->SetRenderState(D3DRS_DESTBLEND,	 D3DBLEND_INVSRCALPHA); 
	

	m_pd3dDevice->SetStreamSource(0,m_pVB,0,sizeof(VERTORFROM));
	m_pd3dDevice->SetFVF(D3DFVF_VEFTORFROM);
	m_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);
	m_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,4,2);

	m_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,false);
	Move();
}

⌨️ 快捷键说明

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