Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Opengl, funkcja translatef i ujemne wartosci

Ostatnio zmodyfikowano 2012-08-15 22:37
Autor Wiadomość
anonim
Temat założony przez niniejszego użytkownika
Opengl, funkcja translatef i ujemne wartosci
» 2012-08-15 22:17:13
Witam ponownie ;)
Mam taki problem:
Są 2 zmienne typu float - transX i transZ, na początku równe 0.0;
Obsługa klawiszy:
C/C++
void handleKeypress( unsigned char key, int x, int y ) {
    switch( key ) {
    case 27: //Escape key
        cleanup();
        exit( 0 );
        break;
       
    case '+':
        scaleFloat += 0.05;
        break;
       
    case '-':
        scaleFloat -= 0.05;
        break;
       
    case 'a':
        transX -= 1.0;
       
    case 'd':
        transX += 1.0;
       
    case 'w':
        transZ -= 1.0;
       
    case 's':
        transZ += 1.0;
       
    }
}
następnie obsługuje te zmienne funkcją glTranslatef(transX, 0.0, transZ);
W moim zamierzeniu ma to przesuwac obiekt na scenie, niestety działa tylko dla klawiszy 'd' i 's', czyli klawiszy zmniejszających wartości transX i transZ
P-62616
kamillo121
» 2012-08-15 22:32:25
C/C++
case 'a':
transX -= 1.0;

case 'd':
transX += 1.0;

case 'w':
transZ -= 1.0;

case 's':
transZ += 1.0;

}
}

W tych miejscach powstawiaj break o ile ich brak nie jest zamierzony.
Jeżeli z case'a wybierze 'a'  to wykona się kolejno:
C/C++
transX -= 1.0;
transX += 1.0;
transZ -= 1.0;
transZ += 1.0;

co w tym wypadku zawsze na wyjściu zwiększy o podaną wartość i X i Z.

Zamień na:

C/C++
case 'a':
transX -= 1.0;
break;

case 'd':
transX += 1.0;
break;

case 'w':
transZ -= 1.0;
break;

case 's':
transZ += 1.0;
break;

}
}

W dodatku procedura na wejściu pobiera trzy wartości z czego dwie ostatnie nie są używane, celowo ?
P-62620
anonim
Temat założony przez niniejszego użytkownika
» 2012-08-15 22:37:10
Wielkie dzięki
O kurcze! Już dawno takiego przeoczenia nie zrobiłem.
Ale mówią, że człowiek uczy się na błędach ;)
Jeszcze raz wielkie dzięki.
P-62621
« 1 »
  Strona 1 z 1