2017-07-16 51 views
1

GLFWを使い慣れていないので、マウスの左ボタンをクリックするたびにカーソル座標をコンソールに出力したい。しかし、私は何の出力も得られません。OpenGLはC++のマウスクリック時にカーソル座標を取得

static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) 
{ 
    //ESC to quit 
    if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) 
    { 
     glfwSetWindowShouldClose(window, GL_TRUE); 
     return; 
    } 
    if (key == GLFW_MOUSE_BUTTON_LEFT && action == GLFW_PRESS) 
    { 
     double xpos, ypos; 
     //getting cursor position 
     glfwGetCursorPos(window, &xpos, &ypos); 
     cout << "Cursor Position at (" << xpos << " : " << ypos << endl; 
    } 
} 
+1

**キーイベント**のコールバックでこれを行う理由は何ですか?マウスボタンがクリックされたときに何かしたい場合は、マウスボタンのコールバックでチェックしてください。 –

答えて

2

キーボード入力コールバックでマウス入力を取得しようとしています。 keyGLFW_KEY_*の値に対応しています。代わりにマウス入力コールバックを設定する必要があります。

void mouse_button_callback(GLFWwindow* window, int button, int action, int mods) 
{ 
    if(button == GLFW_MOUSE_BUTTON_LEFT && action == GLFW_PRESS) 
    { 
     double xpos, ypos; 
     //getting cursor position 
     glfwGetCursorPos(window, &xpos, &ypos); 
     cout << "Cursor Position at (" << xpos << " : " << ypos << endl; 
    } 
} 
関連する問題