在一個(gè)網(wǎng)游中需要在角色的頭頂顯示角色的姓名,當(dāng)角色被一個(gè)房子擋住的時(shí)候,他的姓名也應(yīng)該看不到,或者是擋住一半,這就需要使用Z值測(cè)試。如果你使用了ID3DXFont,會(huì)發(fā)現(xiàn)它并沒有一個(gè)帶z值參數(shù)的接口函數(shù),要使得ID3DXFont支持z值,需要多做幾個(gè)步驟,我感覺這就是MS的風(fēng)格。:(
?MS聲稱ID3DXFont是一個(gè)完全2D的接口,所以如果你想接入z值測(cè)試,那么必須通過ID3DXSprite!不過用法倒也簡(jiǎn)單:
?1、創(chuàng)建一個(gè)ID3DXFont對(duì)象和一個(gè)ID3DXSprite對(duì)象;
?2、調(diào)用ID3DXSprite對(duì)象的Begin():
???? ??m_pD3DSprite->Begin(D3DXSPRITE_ALPHABLEND);
?3、將ID3DXSprite對(duì)象的Transform矩陣:
???? ??D3DXMATRIX matrix;
???? ??D3DXMatrixIdentity(&matrix);
???? ??D3DXMatrixTranslation(&matrix, 0.0f, 0.0f, z);
???? ??m_pD3DSprite->SetTransform(&matrix);
?4、調(diào)用一下ID3DXSprite的End()才能真正的畫出文字。