patas
Založen: 27. 07. 2009 Příspěvky: 1
|
Zaslal: 13. srpen 2009, 17:51:49 Předmět: DirectX a poloprůhledný Sprite jako Skóre |
|
|
Dobrý den,
mám pro mě neřešitelný problém. Dělám hru bomberman. Jenže když kreslím skóre tak poloprůhledné pixely jsou růžové (jako transparentní barva). Neví někdo kde je chyba? Už jsem s toho zoufalej. Díky moooooc.
kód: |
// Načteni obrázku pro Score1
D3DXCreateTextureFromFileEx(d3ddev,
"images/24x24/Cisla_1.dds",
240, 24, 1, NULL,
D3DFMT_A8R8G8B8,
D3DPOOL_MANAGED,
D3DX_DEFAULT,
D3DX_DEFAULT,
D3DCOLOR_ARGB(255,255,0,255),
NULL,
NULL,
&pCisla1Tex);
d3ddev->SetTexture(0, pCisla1Tex );
d3ddev->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0 );
d3ddev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE );
d3ddev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3ddev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
d3ddev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );
d3ddev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
d3ddev->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
d3ddev->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
d3ddev->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
Score1->Draw(pCisla1Tex, &SrcRect, NULL, &pos_score, 0xffffffff);
Score1->End();
|
MODERATOR: co tahkle pouzit tag CODE at se na to da divat? |
|
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 13. srpen 2009, 20:59:24 Předmět: |
|
|
Jen tak střela od boku, nemá být
D3DCOLOR_ARGB(255,255,0,255)
D3DCOLOR_ARGB(255,255,0,0)?
Cituji wikipedii:
citace: |
If a pixel has a value of 0% in its alpha channel, it is fully transparent (and, thus, invisible), whereas a value of 100% in the alpha channel gives a fully opaque pixel (traditional digital images). |
EDIT: Pokud to nevyjde, zkus i něco jako D3DCOLOR_RGB(255,255,0)
Ale opravdu nevím, na otázky okolo 2D DirectX jsou možná (IMHO, nekamenovat ) lepší fóra na builder.cz _________________ For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++. |
|
am!go

Založen: 19. 08. 2007 Příspěvky: 61 Bydliště: Praha
|
Zaslal: 14. srpen 2009, 08:45:45 Předmět: |
|
|
Za predpokladu, ze ta DDS textura obsahuje alpha kanal se spravnejma hodnotama, by ti mela stacit funkce
kód: |
HRESULT D3DXCreateTextureFromFile(
LPDIRECT3DDEVICE9 pDevice,
LPCTSTR pSrcFile,
LPDIRECT3DTEXTURE9 * ppTexture
);
|
To nastaveni render states by pak melo byt snad dobre. |
|