2 Pluspunkte 0 Minuspunkte

Wie kann ich mit GLFW ausgeben an welcher x/y Position sich die Maus gerade befindet?

#include <GLFW/glfw3.h>
#include <stdio.h>

int main()
{

    if (!glfwInit())
        return -1;

    GLFWwindow* window = glfwCreateWindow(800, 600, "Maus Beispiel", NULL, NULL);
    if (!window)
    {
        glfwTerminate();
        return -1;
    }

    while (!glfwWindowShouldClose(window))
    {

        // printf("%d:%d", mouseX, mouseY);

        glfwPollEvents();

    }

    glfwTerminate();
    return 0;

}
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Mit der GLFW internen Funktion

glfwSetCursorPosCallback(window, callback);

kannst du einen eigenen Callback registrieren. Der wird dann automatisch jedes mal aufgerufen wenn sich die Maus bewegt und ruft die von dir registrierte Callback Funktion auf. Dabei übergibt sie jedes mal die x/y Koordinaten.

#include <GLFW/glfw3.h>
#include <stdio.h>

void mouse_callback(GLFWwindow* window, double xpos, double ypos)
{
    printf("Mausposition: (%f, %f)\n", xpos, ypos);
}

int main()
{

    if (!glfwInit())
        return -1;

    GLFWwindow* window = glfwCreateWindow(800, 600, "Maus Beispiel", NULL, NULL);
    if (!window)
    {
        glfwTerminate();
        return -1;
    }

    // Setze den Maus-Callback
    glfwSetCursorPosCallback(window, mouse_callback);

    while (!glfwWindowShouldClose(window))
    {

        // Handle events
        glfwPollEvents();

    }

    glfwTerminate();
    return 0;

}
von (716 Punkte)  
GLFW Position von Mausklick anzeigen