Reagowanie programu na naciśnięty przycisk.

0

Witam!
Kieruję do Was szybkie pytanie, kod jest wzięty z mojej aplikacji w której "bawię się" OpenGL.
Mam taki fragment kodu:

private static void OnKeyboardDown(byte key, int x, int y)
        {
            if (key == 27) Glut.glutLeaveMainLoop();
            else if (key == 'w') rotateObjectUp = true;
            else if (key == 's') rotateObjectDown = true;
            else if (key == 'a') rotateObjectLeft = true;
            else if (key == 'd') rotateObjectRight = true;
            else if (key == 't') moveCameraUp = true;
            else if (key == 'g') moveCameraDown = true;
            else if (key == 38) moveCameraForward = true;
            else if (key == 40) moveCameraBackward = true;
            else if (key == 37) moveCameraLeft = true;
            else if (key == 39) moveCameraRight = true;
        }

Sprawa wygląda tak, program "reaguje" na naciśniecie klawisza 27(escape) czyli wyłącza się, program reaguje na wszystkie "komendy" w ' ', lecz nie reaguje na kody kolejnych strzałek 37..40 i nie wiem czy implementacja powinna być inna, czy co jest nie tak, bo gdy podmienię kody strzałek na cokolwiek ale w ' ' wtedy wszystko działa jak należy.

1

Use the Debuger, Luke.
I zobacz co przychodzi i z czym porównujesz.

0

Ok, wniosek jest taki, że z jakiś powodów nie reaguje kompletnie na strzałki itp. Nie przechwytuje "byte key"

0

Może strzałki to nie keyboard. W winform np.
keypress event nie dzialaja z non-character a keydown dzialają. Moze w opengl tez jest jakies inne zdarzenie dla non-character keys.

Zobacz może to
https://www.opengl.org/discussion_boards/showthread.php/136442-what-are-the-codes-for-arrow-keys-to-use-in-glut-keyboard-callback-function

1 użytkowników online, w tym zalogowanych: 0, gości: 1