Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Jack Raynor

Treue Seele

  • »Jack Raynor« ist der Autor dieses Themas

Beiträge: 111

Wohnort: Korprulu Sektor BR-5-Tarsonis

Beruf: Schüler

  • Private Nachricht senden

1

01.05.2004, 21:48

Fadenkreuz

Hi,
ich versuche zurzeit in meinem Spiel ein Fadenkreuz anzuzeigen, nur funzt das irgendwie nicht richtig (es wird nicht angezeigt)! 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
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
50
51
52
53
54
55
56
57
bsResult cCam::RenderCrosshair()
{
    SHUDVertex aVertex[4];
    bsVec2 vMiddle; // Mitte des Bildschirms

    // ------------------------------------------------------------------

    // Textur setzen
    bsDirect3D::SetTexture(0, m_pCross); 

    // Vertexformat und Render-States 
    bsDirect3D::SetFVF(HUD_FVF); 
    bsDirect3D::SetRS(D3DRS_ZENABLE, FALSE); 
    bsDirect3D::SetRS(D3DRS_ZWRITEENABLE, FALSE); 
    bsDirect3D::SetRS(D3DRS_COLORVERTEX, TRUE); 
    bsDirect3D::SetRS(D3DRS_ALPHABLENDENABLE, TRUE); 
    bsDirect3D::SetRS(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); 
    bsDirect3D::SetRS(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); 
    bsDirect3D::SetTSS(0, D3DTSS_COLOROP, D3DTOP_MODULATE); 
    bsDirect3D::SetTSS(0, D3DTSS_COLORARG1, D3DTA_TEXTURE); 
    bsDirect3D::SetTSS(0, D3DTSS_COLORARG2, D3DTA_CURRENT); 
    bsDirect3D::SetTSS(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE); 
    bsDirect3D::SetTSS(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); 
    bsDirect3D::SetTSS(0, D3DTSS_ALPHAARG2, D3DTA_CURRENT);

    vMiddle = bsVec2(bsDirect3D::GetScreenSize().x, bsDirect3D::GetScreenSize().y);

    // Die vier Vertizes des Fadenkreuzes erstellen (Rechteck)
    // Links unten
    aVertex[0].vPosition = bsVec3(0, 32, 0.5f);
    aVertex[0].fRHW = 1.0f;
    aVertex[0].Color = bsColor(1.0f);
    aVertex[0].vTex0 = bsVec2(0.0f, 1.0f);

    // Links oben
    aVertex[1].vPosition = bsVec3(0, 0, 0.5f);
    aVertex[1].fRHW = 1.0f;
    aVertex[1].Color = bsColor(1.0f);
    aVertex[1].vTex0 = bsVec2(0.0f, 0.0f);

    // Rechts unten
    aVertex[2].vPosition = bsVec3(32, 32, 0.5f);
    aVertex[2].fRHW = 1.0f;
    aVertex[2].Color = bsColor(1.0f);
    aVertex[2].vTex0 = bsVec2(1.0f, 1.0f);

    // Rechts oben
    aVertex[3].vPosition = bsVec3(32, 0, 0.5f);
    aVertex[3].fRHW = 1.0f;
    aVertex[3].Color = bsColor(1.0f);
    aVertex[3].vTex0 = bsVec2(1.0f, 0.0f);

    // Als Dreiecksfolge zeichnen
    bsDirect3D::GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, aVertex, sizeof(SHUDVertex));

    return BS_OK;
}

In der Render-Funktion des Spiels wird diese Funktion als letztes vor dem Ende aufgerufen! Wisst ihr eine Lösung?
Was wäre wenn in jedem von uns ein Held stecken würde? Was wäre wenn jeder von uns als Held geboren wäre? Hättest du den Mut Held zu werden?
Legenden des Tassadar, Kapitel 3, Absatz 5

Starcraft - Battle of Races

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

01.05.2004, 22:00

Entweder musst du diese Vertecies an der Transformation vorbei schmuggeln oder du musst die Daten durch eine "relativ zu absolut"Umwandlung mit Bezug auf die Spielerposition machen.

3

02.05.2004, 02:27

Deine Koordinaten sind völlig absurd. Keine Graka unterstützt einen Modus von 64x64 Pixel als Bildauflösung ;)

Und warum holst du dir die Auslösung und speicherst sie in einem Vector der offensichtlich die Mitte sein soll, errechnest diese aber nicht ??? Und warum benutzt du diese dann nicht ???

Wenn dein Fadenkreuz angezeigt wird, dann nur oben link ;) Die Z-Koordinate muss auch glaub ich immer auf 1.0 stehen. Da bin ich mir jetzt aber nicht so sicher.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Jack Raynor

Treue Seele

  • »Jack Raynor« ist der Autor dieses Themas

Beiträge: 111

Wohnort: Korprulu Sektor BR-5-Tarsonis

Beruf: Schüler

  • Private Nachricht senden

4

02.05.2004, 08:26

Hi,
als Bildauflösung meinst du wahrscheinlich die vom Screen und nicht die von der Tex, oder? Und ich wollte erstmal das Fadenkreuz oben angezeigt haben, danach kommt der vMiddle Vector zum Einsatz. Das mit Z = 1.0f probier ich gleich mal aus!

Jack
Was wäre wenn in jedem von uns ein Held stecken würde? Was wäre wenn jeder von uns als Held geboren wäre? Hättest du den Mut Held zu werden?
Legenden des Tassadar, Kapitel 3, Absatz 5

Starcraft - Battle of Races

Werbeanzeige