Изменить фон GLFWwindow при нажатии клавиши - PullRequest
1 голос
/ 20 марта 2019

Я хочу, чтобы можно было переключаться между 5 фоновыми цветами, когда я нажимаю клавишу "B".Прямо сейчас я могу только изменить свой цвет на красный.Я не уверен, что пойду правильно.Любая помощь будет оценена.

static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) {

if (key == GLFW_KEY_B && action == GLFW_PRESS)
{
    for (int i = 0; i < 5; i++)
    {
        switch (i)
        {
            case 0:
                glClearColor(1.0, 0.0, 0.0, 1.0);
                break;

            case 1:
                glClearColor(0.0, 1.0, 0.0, 1.0);
                break;

            case 2:
                glClearColor(0.41, 0.41, 0.41, 1.0);
                break;

            case 3:
                glClearColor(1.0, 1.0, 1.0, 1.0);
                break;

            case 4:
                glClearColor(0.0, 0.0, 1.0, 1.0);
                return;
           }
       }
   }
}

1 Ответ

0 голосов
/ 20 марта 2019

Когда вы нажимаете клавишу B, цикл запускается, и вы видите последний цвет, вам необходимо ввести тест нажатия клавиши в цикл.Как это:

static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
    for (int i = 0; i < 5; i++)
    {
      Readkey(key);
       if (key == GLFW_KEY_B && action == GLFW_PRESS)
        {
        switch (i)
            {
              case 0:
                glClearColor(1.0, 0.0, 0.0, 1.0);
                break;

              case 1:
                glClearColor(0.0, 1.0, 0.0, 1.0);
                break;

            case 2:
                glClearColor(0.41, 0.41, 0.41, 1.0);
                break;

            case 3:
                glClearColor(1.0, 1.0, 1.0, 1.0);
                break;

            case 4:
                glClearColor(0.0, 0.0, 1.0, 1.0);
                return;
           }
       }
    }
...