Понедельник, 11 Ноября 2024, 04:36

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Спонтаное закрытие окна в SFML
goldsphereДата: Воскресенье, 07 Сентября 2014, 13:54 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Никак не могу понять почему окно в sfml может просто взять и закрыться. Точнее ясно, что срабатывает условие закрытия окна, но как-то само, без нажатия Escape или закрытия на крестик. Сейчас дошло до того, что оно вырубается при наведении на левую часть окна. Причём с таким сталкивался только в sfml. В чём может быть проблема?

FinderX - Android Аркада
arlaidДата: Воскресенье, 07 Сентября 2014, 14:07 | Сообщение # 2
частый гость
Сейчас нет на сайте
Кинь код, посмотрим что там у тебя.
goldsphereДата: Воскресенье, 07 Сентября 2014, 14:29 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте


s и a удаляются в ресурс менеджере


FinderX - Android Аркада
OpenGOOДата: Воскресенье, 07 Сентября 2014, 14:56 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
goldsphere, запусти программу в дебагерском режиме. Полагаю что у тебя где то в коде возникла следующая ситуация: функция А вызывает функцию Б, а функция Б вызывает функцию А.

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
goldsphereДата: Воскресенье, 07 Сентября 2014, 15:13 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
OpenGOO, т.е думаете, что у меня переполнение стека? Вряд ли, у меня именно срабатывает условие закрытия окна , когда мышка до определённой границы доходит, события внутри окна нормально обрабатываются. Если убрать это условие, то всё - ок.

FinderX - Android Аркада
OpenGOOДата: Воскресенье, 07 Сентября 2014, 15:45 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
goldsphere, если бы с приложением было всё нормально, то оно работала как задумывалась, а раз не так, значит в нём есть баг. Поставь в месте window.close(); точку останова и узнаешь почему она вызывается, если она вообще вызывается.

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
goldsphereДата: Понедельник, 08 Сентября 2014, 07:25 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
OpenGOO, Я же написал, что window.close() срабатывает, что условие закрытия выполняется, но условие такое:
Код
if(event.type == sf::Event::Closed || event.key.code == sf::Keyboard::Escape)
  window.close();

а вырубается оно как подведёшь мышку влево, хотя на такое действие в коде и намёка нет. Ладно, буду разбираться.

Добавлено (08.09.2014, 07:25)
---------------------------------------------
Нашёл, вылетало из-за этого условия

Код
event.key.code == sf::Keyboard::Escape

Почему, хз.


FinderX - Android Аркада
OpenGOOДата: Понедельник, 08 Сентября 2014, 13:12 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Должно быть такое условие (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape)

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
MrFiringДата: Среда, 10 Сентября 2014, 19:26 | Сообщение # 9
был не раз
Сейчас нет на сайте
Цитата OpenGOO ()
Должно быть такое условие (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape)

Или такое
(event.type == sf::Event::Closed || sf::Keyboard.isKeyPressed(sf::Keyboard::Escape))
-l33t-h4xx-Дата: Четверг, 11 Сентября 2014, 08:48 | Сообщение # 10
участник
Сейчас нет на сайте
Цитата MrFiring ()
(event.type == sf::Event::Closed || sf::Keyboard.isKeyPressed(sf::Keyboard::Escape))

Обработка мгновенных нажатий в коде обработки событий? Я бы не советовал. Рано или поздно приведёт к забавным багам.


Как правильно задавать вопросы
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг