Du verwendest doch für die Textfarbe 4 Kanäle, also auch einen Alphakanal. Könnte man nicht den Alphakanal langsam von 1.0 auf 0.0 absenken. Ich denke mal du bekommst in der Render Methode ja eine Zeit seit dem letzen Aufruf übergeben, oder ?
Dann würde sowas vielleicht gehen :
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
static fTimeAccu = 0.0;
float fTime // Zeit seit dem letzten Rendern in ms
float fDuration = 500; // So lange dauert es bis der Text verschwindet
fTimeAccu += fTime;
if (fTimeAccu < fDuration)
float fAlpha = 1.0 - (fTimeAccu/fDuration);
else
fAlpha = 0;
if(SUCCEEDED(g_pD3DDevice->BeginScene()))
{
g_pFont->DrawText(NULL, "blabla", -1, &rc, 0, D3DXCOLOR( 1.0f, 0.0f, 0.0f, alpha));
g_pD3DDevice->EndScene();
}
}
|
Das ist natürlich nicht ausgereift, aber so von der Idee her könnte es gehen. Du musst das Ganze natürlich noch irgendwo auslösen, sonst beginnt der Text gleich bei Programmstart zu verschwinden.