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