.[ ČeskéHry.cz ].
DirectX a poloprůhledný Sprite jako Skóre

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
patas



Založen: 27. 07. 2009
Příspěvky: 1

PříspěvekZaslal: 13. srpen 2009, 17:51:49    Předmět: DirectX a poloprůhledný Sprite jako Skóre Odpovědět s citátem

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). Confused Neví někdo kde je chyba? Už jsem s toho zoufalej. Crying or Very sad 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?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 13. srpen 2009, 20:59:24    Předmět: Odpovědět s citátem

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 Embarassed ) lepší fóra na builder.cz
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
am!go



Založen: 19. 08. 2007
Příspěvky: 61
Bydliště: Praha

PříspěvekZaslal: 14. srpen 2009, 08:45:45    Předmět: Odpovědět s citátem

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna