Problem z poruszaniem kamerą w OpenGL

0
if(Keyboard.isKeyDown(Keyboard.KEY_C)){                       // Resetowanie widoku
    setCameraView(0.0f,0.0f,-50.0f,
    0.0f,0.0f,0.0f,
    0.0f,1.0f,0.0f);
}
if(Keyboard.isKeyDown(Keyboard.KEY_W)){                       // Poruszanie do przodu
    cameraZPosition += 0.2f;
}
if(Keyboard.isKeyDown(Keyboard.KEY_S)){                       // Poruszanie do tyłu
    cameraZPosition -= 0.2f;
}
if(Keyboard.isKeyDown(Keyboard.KEY_A)){                       // Poruszanie kamerą w lewą (nie rotacja)
    centerXPosition -= 0.2f;
}
if(Keyboard.isKeyDown(Keyboard.KEY_D)){                       // Poruszanie kamerą w prawo (nie rotacja)
    centerXPosition += 0.2f;
}
if(Keyboard.isKeyDown(Keyboard.KEY_R)){                       // Poruszanie kamerą w górę (nie rotacja)
    centerYPosition += 0.2f;
}
if(Keyboard.isKeyDown(Keyboard.KEY_F)){                       // Poruszanie kamerą w dół (nie rotacja)
    centerYPosition -= 0.2f;
}
if(Keyboard.isKeyDown(Keyboard.KEY_T)){                       // Rotacja kamery poprzez przytrzymanie T i ruszanie myszką
    centerXPosition += mouseDX/25;
    centerYPosition += mouseDY/25;
}

Mam taki problem, że podczas trzymania klawisza W, kamera, nieważne gdzie jest, zawsze dąży do centrum (0,0,0, a pozycja startowa kamery to 0,0,-50), jak to naprawić?
W dodatku, moim zamierzeniem było zrobić kamerę typu "gdzie patrzysz, tam idziesz", czyli dosłownie mówiąc, gdzie kamera jest zwrócona, tam po wciśnięciu klawisza W, lecisz - ale nie mam zielonego pojęcia, jak ją zrobić?

0

Przesuwać i obracać kamerą odpowiednimi funkcjami, zamiast w każdej klatce na nowo ustawiać pozycję za pomocą gluLookAt.

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