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

📄 game_billboard.cpp

📁 自己写的一个D3D游戏Dome。实现了基本的游戏功能
💻 CPP
字号:
#include "..\Include\Game_BillBoard.h"
#include "..\Include\Game_Resource.h"
#include "..\Include\Game_App.h"

Game_BillBoard::Game_BillBoard(float w, float h, wstring texName,D3DXVECTOR3 pos){
	m_vPos.x=pos.x;
	m_vPos.y=pos.y;
	m_vPos.z=pos.z;
	D3DXMatrixIdentity(&m_matTree);
	g_sGlobal.g_pDevice->CreateVertexBuffer(4*sizeof(BBVertex), D3DUSAGE_WRITEONLY, D3DFVF_BBVERTEX, D3DPOOL_DEFAULT, &m_pTreeVB, 0);
	BBVertex* p;
	m_pTreeVB->Lock(0, 0, (void**)&p, 0);
	p[0].position = D3DXVECTOR3(-w/2, h/2, 0);
	p[0].texcoord = D3DXVECTOR2(0, 0);
	p[1].position = D3DXVECTOR3(w/2, h/2, 0);
	p[1].texcoord = D3DXVECTOR2(1, 0);
	p[2].position = D3DXVECTOR3(-w/2, -h/2, 0);
	p[2].texcoord = D3DXVECTOR2(0, 1);
	p[3].position = D3DXVECTOR3(w/2, -h/2, 0);
	p[3].texcoord = D3DXVECTOR2(1, 1);
	m_pTreeVB->Unlock();

	m_pTreeTex=Game_Resource::Instance()->GetTexture(texName);
}

Game_BillBoard::~Game_BillBoard(){
	SAFE_RELEASE(m_pTreeVB);
}

void Game_BillBoard::Render(float timeStep){
	FrameMove();

	g_sGlobal.g_pDevice->SetTexture(0, m_pTreeTex);
	g_sGlobal.g_pDevice->SetTransform(D3DTS_WORLD, &m_matTree);    
	g_sGlobal.g_pDevice->SetFVF(D3DFVF_BBVERTEX);
	g_sGlobal.g_pDevice->SetStreamSource(0,m_pTreeVB,0,sizeof(BBVertex));
	g_sGlobal.g_pDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
	
}

void Game_BillBoard::FrameMove(){
	m_matTree._11 = g_sGlobal.g_pGameApp->m_pGame_Camera->GetViewMatrix()->_11;
	m_matTree._13 = g_sGlobal.g_pGameApp->m_pGame_Camera->GetViewMatrix()->_13;
	m_matTree._31 = g_sGlobal.g_pGameApp->m_pGame_Camera->GetViewMatrix()->_31;
	m_matTree._33 = g_sGlobal.g_pGameApp->m_pGame_Camera->GetViewMatrix()->_33;

	D3DXMatrixInverse(&m_matTree, 0, &m_matTree);

	m_matTree._41 = m_vPos.x;
	m_matTree._42 = m_vPos.y;
	m_matTree._43 = m_vPos.z;
}

⌨️ 快捷键说明

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