При перемещении окна приложения застывает картинка и ломается игровая логика

SFML и C++ Уроки \ Разработка игр Форумы SFML System, Window и другие вопросы При перемещении окна приложения застывает картинка и ломается игровая логика

В этой теме 2 ответа, 2 участника, последнее обновление  Disaster 11 мес. назад.

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #2647

    Disaster
    Участник
    Сообщений:3

    Зарегистрирован:
    08.12.2015

    Репутация:3

    Доброго времени суток. Проблема следующая. При захвате окна приложения за верхнюю панельку (где кнопки свернуть\закрыть), все происходящее в окне застывает, а после того, как отпустишь захват, происходящее меняется, как поменялось бы само без застывания (т.е. враги и платформы изменят свое местоположение). Как это можно пофиксить? Чтобы если уж застывало, то и логика приложения приостанавливалась, но желательно конечно как-то это застывание убрать. Также, после этого застывания (если оно, например, длится секунд 5-10) непонятным образом ломается логика, и враги с платформами уезжают черт знает куда, хотя это не возможно с реализованной логикой их работы. В этом главная проблема. Почему это происходят понять не могу. Помогите, пожалуйста. Спасибо.

    Игра – https://yadi.sk/d/wFea3mlAmejAy

    #2648
    +2
    Heisenberg
    Heisenberg
    Участник
    Сообщений:314

    Зарегистрирован:
    01.04.2015

    Репутация:139

    Могу дать только подсказку, т.к. сам столкнулся с этой проблемой.

    Когда перетаскиваешь окно, главный цикл останавливает свою работу, а время – к которому привязано всё происходящее продолжает расти, и в момент продолжения всё сдвигается на speed*time которое тикало пока цикл был приостановлен.

    Запускай приложение в полноэкранном режиме )
    Обнуляй время если оно подозрительно большое.

    #2651

    Disaster
    Участник
    Сообщений:3

    Зарегистрирован:
    08.12.2015

    Репутация:3

    Большое спасибо за совет, обнуление времени спасло ситуацию.

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)

Для ответа в этой теме необходимо авторизоваться.