クラス内のいくつかの変数を操作するためのキー入力に問題があります。以下の静的関数は、 GLFW3key_callback
の最新バージョン/サンプルに属します。基本的なカメラ座標を持つレンダリング クラスがありますが、キーが押されたときに更新されるようにカム変数とヨー ピッチ ロール変数を接続する方法がわかりません。
静的関数を 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)