我无法获得关键输入来操作类中的一些变量。下面的静态函数key_callback
属于GLFW3的最新版本/示例。我有一个带有基本相机坐标的渲染类,但是我无法弄清楚如何连接我的 cam 和 yaw-pitch-roll 变量以在按下键时进行更新。
我尝试将静态函数移动到我的 Renderer 类中,尝试将我的 cam 变量设为静态,但没有任何效果。
在Renderer.h 中
GLfloat camX, camY, camZ, yaw, pitch, roll;
在main.cpp 中
static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
switch (key)
{
case GLFW_KEY_ESCAPE:
glfwSetWindowShouldClose(window, GL_TRUE); <-- Works
break;
case GLFW_KEY_W: camZ += 0.1f; break; <-- What I'm trying to get
case GLFW_KEY_S: camZ -= 0.1f; break;
case GLFW_KEY_A: camX += 0.1f; break;
case GLFW_KEY_D: camX -= 0.1f; break;
case GLFW_KEY_E: yaw += 0.05f; break;
case GLFW_KEY_R: yaw -= 0.05f; break;
}
}
在int main()内
GLFWwindow* window;
Renderer rend;
....
glfwSetKeyCallback(window, key_callback);
rend.Initialize();
(Main loop)