Форум программистов, компьютерный форум, киберфорум
SFML
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
C# Junior
3 / 2 / 1
Регистрация: 09.12.2018
Сообщений: 122
1

Событие "Зажато ли окно"

30.08.2020, 20:46. Показов 732. Ответов 5

Author24 — интернет-сервис помощи студентам
Гуд дэй тайм.!
Возникла простая но критическая проблема, вызывающая много багов.
Вообщем: когда окно не в полноэкранном режиме находится, его можно двигать держа его мышкой за голову. И вот во время этого процесса всё в окне SFML застывает. А после этого всё восстанавливается, но наперекосяк: солнце с орбиты слетает и всё в этом духе. Этот баг можно исправить просто обнулив deltaTime во время движения окна. Но как проверить - двигается оно или не двигается? Просто нужен Экспрешн для иф'а.

Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2020, 20:46
Ответы с готовыми решениями:

Кастомизированное окно на событие onbeforeunload
Добрый день. Можно ли как то сделать при возникновении события onbeforeunload появления...

Диалоговое окно: на какое событие повесить обработку?
Есть диалоговое окно, которое вызывается из формы. @DialogBox("Window"; : : ; "Please select")...

Как вернуть событие (клик) из DeskBand в основное окно?
Продолжая тему усовершенствования своего бытового таймера :) - хотел бы прежде всего еще раз...

Не срабатывает событие при перетаскивании файла в окно приложения
В главном окне привязываю события на перетаскивание(на названия обработчиков и на избыток их не...

Какое событие позволяет понять, что над окном двигают другое окно
Есть окно проги, которую я пишу. Мне необходимо вызывать один метод всегда, когда над окном...

5
6105 / 3460 / 1405
Регистрация: 07.02.2019
Сообщений: 8,790
30.08.2020, 21:23 2
Цитата Сообщение от CharlyAB Посмотреть сообщение
Но как проверить - двигается оно или не двигается?
Средствами sfml - никак.
Просто переведи игровую логику на фиксированный интервал времени.
Или если дружишь с многопоточностью, то перенеси обработку событий(не буквально, а через буферную очередь), логику и рисование в отдельный поток. В основном потоке только оставь создание окна и пересылку событий.
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
30.08.2020, 21:24 3
Цитата Сообщение от CharlyAB Посмотреть сообщение
И вот во время этого процесса всё в окне SFML застывает.
Дело не в sfml - в Windows основной поток блокируется до завершения перетаскивания. Хотите чтобы не застывало - рисуйте в отдельном потоке.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
30.08.2020, 21:26 4
Сделайте цикл с постоянным временным шагом, тогда слишком большая дельта времени не будет играть роли для внутреннего состояния игры.
0
C# Junior
3 / 2 / 1
Регистрация: 09.12.2018
Сообщений: 122
31.08.2020, 10:00  [ТС] 5
Хорошо, я подумаю.

Добавлено через 39 минут
Тогда как мне запустить выполнение целого файла кода в отдельном потоке? Будет очень удобно если все файлы кода кроме Source.cpp будут исполнять отдельные потоки.
(В каждом файле по несколько ifndef'ов и к ним привязаны define'ы с таким же именем.

Добавлено через 8 минут
C++
1
std::theard t(Menu.h)
Как ни странно, так не получается.
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
31.08.2020, 10:15 6
Цитата Сообщение от CharlyAB Посмотреть сообщение
Тогда как мне запустить выполнение целого файла кода в отдельном потоке?
Это не так работает.
0
31.08.2020, 10:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2020, 10:15
Помогаю со студенческими работами здесь

Как удалить из словаря именно то окно, для которого пришло событие 'closed'?
Вопрос: как в том месте, где вопросики (21-я строка) удалить из словаря (wins) именно то окно для...

Создать окно произвольного размера, скрыть окно, показать окно, удалить окно.
Создать окно произвольного размера, скрыть окно, показать окно, удалить окно. Для создания окна...

Ошибка "Окно не может обработать событие, так как их сигнатуры несовместимы"
Я плохо разбираюсь в ВБ, подчёркнуто SendingQuery как ошибка и пишет Скажите как исправить...

Окно со статусбаром и кнопкой "Отмена". Как отследить событие нажатия кнопки?
Доброго времени суток, коллеги! Ситуация следующая. Из MainForm запускаю отображение второй...

Событие "свернуть в окно"
Здравствуйте. Не могу найти событие, при сворачивание в окно браузера (квадратик в углу у...

Используя иерархию и наследование, создать классы окно, окно с заголовком и окно с кнопкой
Используя иерархию и наследование, создать классы окно, окно с заголовком и окно с кнопкой. C++


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru