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

25.08.2014, 10:59

Vertex Viereck verschieben an der y-Achse

Hallo zusammen,

Ich bin im Moment an den Übungsaufgaben zum zeichnen eines Dreieckes (2.5.6). Ich hab natürlich die Aufgaben schon erledigt möchte aber noch ein wenig weiterknoddeln. Ich hab jetzt zb zwei Vierecke erstellt und möchte über die Tastatur tasten UP DOWN LEFT RIEGHT die Vierecke an der Y-Achse verschieben, bekomme es aber nicht hin.

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
24
25
26
27
28
29
30
31
32
33
tbResult Move(float fNumSecsPassed)
{

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

    /*------------------------------------------------------------------------------------------*/

    // Viereck 1 hoch und runter bewegen
    if (GetAsyncKeyState(VK_UP)) {
        for (int i = 0; i < 4; i++){
            g_aViereck1[i].vPosition += /*g_aViereck1[i].vPosition */ 1.0f * fNumSecsPassed; //Bewegung nach vorne und hinten ...
        }
    }
    if (GetAsyncKeyState(VK_DOWN)){
        for (int i = 0; i < 4; i++){
            g_aViereck1[i].vPosition -= /*g_aViereck1[i].vPosition */ 1.0f * fNumSecsPassed;
        }
    } 
    
    // Viereck 2 hoch und runter bewegen
    if (GetAsyncKeyState(VK_LEFT)) {
        for (int i = 0; i < 4; i++){
            g_aViereck2[i].vPosition +=  (0.0f, 1.0f, 0.0f); //Keine bewegung
        }
    }
    if (GetAsyncKeyState(VK_RIGHT)){
        for (int i = 0; i < 4; i++){
            g_aViereck2[i].vPosition -= (0.0f, 1.0f, 0.0f) ;
        }
    }

    /*------------------------------------------------------------------------------------------*/


Tasten UP und DOWN "funktionieren" aber eher zufällig gefunden.
Bei Viereck 2 hab ich probiert halt die koordinaten um (0.0f, 1.0f, 0.0f) zu addieren bzw subtraieren was wohl nicht zu gehen scheint.

Bin für jeden Ratschlag dankbar

Mfg Nura

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

25.08.2014, 11:06

(0.0f, 1.0f, 0.0f) ist kein Vektor, sondern ergibt einfach nur die Zahl 0.0f.
Du meintest wahrscheinlich tbVector3(0.0f, 1.0f, 0.0f). Alternativ kannst du auch einfach nur die y-Komponente jedes Vektors anfassen, d.h. vPosition.y += 1.0f.
Eine Bewegung um einen pauschalen Wert von 1.0f dürfte im Übrigen viel zu schnell sein. Du musst die vergangene Zeit berücksichtigen.

RmbRT

Treue Seele

Beiträge: 169

Wohnort: Darmstadt

Beruf: Student

  • Private Nachricht senden

3

25.08.2014, 11:23

Zur aufklärung: Der Komma-Operator führt alle aufgelisteten Ausdrücke von links nach rechts aus, gibt den letzten dann zurück.
z.B.

C-/C++-Quelltext

1
2
3
4
5
int meineFunktion()
{
    TuEiniges();
    return logger.log("meineFunktion wurde ausgeführt."), EXIT_SUCCESS;
}

Loggt erst was, und returnt dann EXIT_SUCCESS.
Hoffe, das war verständlich.

MfG,
RmbRT
"Dumm ist, wer dummes tut."

4

25.08.2014, 11:24

Danke für die schnelle hilfe, funktioniert jetzt einwandfrei :)

Werbeanzeige