Как получить обновленные переменные в C ++? - PullRequest
0 голосов
/ 28 мая 2020

Я работаю с C ++ и opengl, используя библиотеку glfw. Я написал программу, которая перемещает модель с помощью клавиши со стрелкой в ​​плоскости xy, используя GLFW_GETKEY, это выглядит немного так:

    void processInput(GLFWwindow* window);

    float x = -3.0f;
    float y = 0.0f;

    int main()
    {
           //some rendering code....
.
.
.
        Shader gun("gun.vs", "gun.fs");
            gun.use();
        gun.setMat4("projection", projection);
        gun.setMat4("view", view);

           //transformation
        transform = glm::translate(scale, glm::vec3(x, y, 1.0f));
        gun.setMat4("model", transform);
    }
    void processInput(GLFWwindow* window)
    {
        if (glfwGetKey(window, GLFW_KEY_UP) == GLFW_PRESS)
            y += 0.1;
        if (glfwGetKey(window, GLFW_KEY_DOWN) == GLFW_PRESS)
            y += -0.1;
        if (glfwGetKey(window, GLFW_KEY_LEFT) == GLFW_PRESS)
            x += -0.1;
        if (glfwGetKey(window, GLFW_KEY_RIGHT) == GLFW_PRESS)
            x += 0.1;
        std::cout << x << std::endl;
        std::cout << y << std::endl;

    }

значения x любые обновления y в консоли, когда cout используется внутри функции processInput, но не в main l oop.

У кого-нибудь есть объяснения по этому поводу.

...