Окно SDL исчезает при движении? - PullRequest
1 голос
/ 06 апреля 2019

Я пишу программу с флагом окна SDL_WINDOW_BORDERLESS.Теперь я хочу свободно перемещать окно, но я, как вы знаете, не могу, поскольку у вас нет окна в режиме BORDERLESS.У меня возникла идея переместить окно с помощью клавиш со стрелками.Сначала это работало чудесно, но когда пришло время показывать изображение.BMP если быть точным;окно, вторая из клавиш со стрелками была нажата, окно исчезает.

Я пытался изменить код, все, что я могу, но я не могу понять, что заставляет окно исчезнуть?Ничто не похоже на работу.Кто-нибудь знает, что вызывает с и как это исправить?

int right;
int down;

bool isquit = false;
SDL_Event event;
while (!isquit) {
   if (SDL_PollEvent( & event)) {
       switch(event.key.keysym.sym) {
              case SDL_QUIT:
                   isquit = true;
                   break;
              case SDLK_RIGHT:
                   right = right + 10;

                   SDL_SetWindowPosition(window, right, down);
                   break;
              case SDLK_DOWN:
                   down = down + 10;

                   SDL_SetWindowPosition(window, right, down);
                   break;
              case SDLK_LEFT:
                   right = right - 10;

                   SDL_SetWindowPosition(window, right, down);
                   break;
              case SDLK_UP:
                   down = down - 10;

                   SDL_SetWindowPosition(window, right, down);
                   break;
              case SDLK_ESCAPE:
                   isquit = true;
                   break;
           }
     }
}

Кто-нибудь знает в любом случае о перемещении окна без границ с помощью клавиш со стрелками?

1 Ответ

3 голосов
/ 06 апреля 2019

Ваши переменные right и down являются автоматическими локальными. Они НЕ инициализированы. Поэтому, когда вы устанавливаете положение окна, оно отодвигается (вероятно, на большое расстояние) от экрана.

У вас должен быть установлен уровень предупреждения компилятора, чтобы уведомлять вас об использовании неназначенных локальных переменных.

...