Hi!
Folgender Quellcode zeichnet mir KEIN Viereck:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
tbResult BW_Spiel::RenderRahmen()
{
Vertex2D PRahmen[4],P;
int iTemp=0;
tbVector3 Temp=Rel(0.0f,1.0f);
TB_INFO("Neuer Frame!");
tbWriteVector3ToLog(Temp);
tbWriteVector3ToLog(tbVector3(0.0f,599.0f,0.5f));
PRahmen[0].vPosition=Rel(0.0f,0.0f);
PRahmen[1].vPosition=Rel(0.0f,1.0f);
PRahmen[2].vPosition=Rel(1.0f,0.0f);
PRahmen[3].vPosition=Rel(1.0f,1.0f);
tbWriteVector3ToLog(PRahmen[1].vPosition);
/*
PRahmen[0].vPosition=tbVector3(0.0f,0.0f,0.5f);
PRahmen[1].vPosition=tbVector3(799.0f,0.0f,0.5f);
PRahmen[2].vPosition=tbVector3(0.0f,599.0f,0.5f);
PRahmen[3].vPosition=tbVector3(799.0f,599.0f,0.5f);
*/
for(iTemp=0;iTemp<4;iTemp++)
{
PRahmen[iTemp].Diffuse=(D3DCOLOR)(tbColor(0.5f));
PRahmen[iTemp].fRHW=1.0f;
}
if(FAILED(tbDirect3D::GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,2,PRahmen,sizeof(Vertex2D))))
TB_INFO("Klappte nicht!");
return TB_OK;
}
tbVector3 BW_Spiel::Rel(float X,float Y)
{
tbVector3 Erg;
if(X>1.0f) X=1.0f;
if(X<0.0f) X=0.0f;
if(Y>1.0f) Y=1.0f;
if(Y<0.0f) Y=0.0f;
Erg=tbVector3(X*ScreenWidth,Y*ScreenHeight,0.5f);
return Erg;
}
|
ScreenWidth und -Height sind denke ich mal selbst erklärend!
Im Logbuch steht dann folgendes:
...
INFO: Neues Frame! (BW_Spiel.cpp, Zeile 55, Funktion (Unbekannt))
3D-Vektor: x = 0.000, y = 599.000, z = 0.500, Länge = 599.000
3D-Vektor: x = 0.000, y = 599.000, z = 0.500, Länge = 599.000
3D-Vektor: x = 0.000, y = 599.000, z = 0.500, Länge = 599.000
...
Trotzdem ist kein graues Viereck auf dem Bildschirm zu sehen. "Klappte nicht" steht auch nicht im Log.
Wenn ich aber das, was kommentiert ist, nehme, IST ein graues Viereck zu sehen.
Die Frage aller Fragen nun: WARUM?