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

1

11.05.2015, 21:46

Nebel abhänging von der Geschwindigkeit?

Hallo,

ich mach gerade eine Übungsaufgabe, am besten Schreib ich sie hier mal rein:

Schreiben Sie das Beispielprogramm mit den Würfeln so um, dass Nebel verwendet wird. Die Neblefarbe und die Nebeldichte sollen abhängig von der Geschwindigkeit der Kamera sein.

Das hab ich auch alles soweit verstanden, hier schreib ich nun ganz kurz die Bewegung der Kamera rein:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        tbVector3 vCameraDirection;

    // Zeitzähler erhöhen
    g_fTime += fNumSecsPassed;

    // Wenn der Benutzer die Pfeiltaste nach links oder rechts drückt,
    // erhöhen bzw. verringern wir den Drehwinkel der Kamera.
    // Die Kamera soll sich mit 45° pro Sekunde drehen.
    if(GetAsyncKeyState(VK_LEFT)) g_fCameraAngle -= TB_DEG_TO_RAD(45.0f) * fNumSecsPassed;
    if(GetAsyncKeyState(VK_RIGHT)) g_fCameraAngle += TB_DEG_TO_RAD(45.0f) * fNumSecsPassed;

    // Wenn der Benutzer die Pfeiltaste nach oben oder unten drückt,
    // wird die Kamera vor- bzw. zurückbewegt. Dazu addieren wir die
    // Kamerablickrichtung zur Kameraposition bzw. subtrahieren sie.
    // Die Blickrichtung wird mit dem Sinus und dem Kosinus des Drehwinkels
    // der Kamera berechnet. Bewegung ist nur auf der xz-Ebene möglich.
    // Nun berechnen wir die Blickrichtung.
    vCameraDirection = tbVector3(sinf(g_fCameraAngle), 0.0f, cosf(g_fCameraAngle));

    // Die Kamera soll sich mit 10 Einheiten pro Sekunde bewegen.
    // Die Blickrichtung ist normalisiert und hat daher die Länge 1.
    if(GetAsyncKeyState(VK_UP)) g_vCameraPosition += vCameraDirection * 10.0f * fNumSecsPassed;
    if(GetAsyncKeyState(VK_DOWN)) g_vCameraPosition -= vCameraDirection * 10.0f * fNumSecsPassed;


Mein Problem ist jetzt nur das die Geschwindigkeit doch nur zwei Werte annehmen kann also 0 Einheiten oder 10 Einheiten pro Sekunde, darum wär es doch total sinnlos das Programm so umzuschreiben?