📄 game_billboard.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 + -