So, also jetzt habe ich immer die Original-Textur auf dem Schirm, so wei es sein soll.
Die Textur ist ein Bitmal und ich lade sie mit dem Colorkey 0, 0, 0, 255, also schwarz ist transparent.
Das geht auch alles sehr gut. Wenn ich jetzt auber auf die Textur zeichnen will, dann ist das was ich zeichne hinter dem, was auf der Originaltextur drauf ist. Aber ich möchte über die Textur zeichnen und nicht untendrunter...
Außerdem kann ich nur schwarz zeichnen, egal weche Farbe ich angebe...
Hier mal der Code:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
tbDirect3D::SetRS(D3DRS_ALPHATESTENABLE, TRUE);
tbDirect3D::SetRS(D3DRS_ZENABLE, D3DZB_FALSE);
tbDirect3D::SetFVF(VERTEX_SCHLAGANI_FVF);
// Erst die Originaltextur in den in die zu bemalende Textur kopieren,
// um die Originaltextur beizubehalten:
m_SchlagAniOrig->BeginDraw();
m_SchlagAni->BeginDraw();
m_SchlagAniOrig->Blt(m_SchlagAni, 0, 0, 0, 0, m_SchlagAni->GetWidth(), m_SchlagAni->GetHeight());
m_SchlagAniOrig->EndDraw();
m_SchlagAni->EndDraw();
// Die Schlaganimation auf die Textur zeichnen
m_SchlagAni->BeginDraw();
m_SchlagAni->DrawFilledRect(10, 20, int(m_ShootStr * 50.0f) + 10, 40, m_SchlagAni->MakeRGB(255, 255,255));
m_SchlagAni->EndDraw();
// Die Textur in die linke obere Ecke zeichnen
tbDirect3D::SetTexture(0, m_TexSchlag);
tbDirect3D::GetDevice()->SetStreamSource(0, m_SchlagAniVerts->GetVB(), 0, sizeof(SVertexSchlagAni));
tbDirect3D::GetDevice()->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
tbDirect3D::SetRS(D3DRS_ALPHATESTENABLE, FALSE);
tbDirect3D::SetRS(D3DRS_ZENABLE, D3DZB_TRUE);
|
Das ist in der Renderfunktion. Wie muss ich es mache, dass es über die Textur geht und mit Farben?
Gruß, Maxi