таймеры, контейнер и доступ к нему |
Здравствуйте, гость ( Вход | Регистрация )
таймеры, контейнер и доступ к нему |
efg |
6.1.2012, 16:02
Сообщение
#1
|
Студент Группа: Участник Сообщений: 48 Регистрация: 6.5.2011 Пользователь №: 2658 Спасибо сказали: 2 раз(а) Репутация: 0 |
пишу игру. использую физический движок (box2d).
суть в том, что есть элементы, которые постоянно создаются по событию одного таймера (назовём его Таймер1) и ложатся в Контейнер (QList), их жизнь довольно коротка: они либо самоуничтожатся через несколько секунд, либо, от взаимодействия с игроком они опять же уничтожатся, но при этом кроме простого удаления из памяти и со сцены, нужно будет выполнить некоторые действия (добавить некоторые количество очков, например, и анимировать всё это дело). и сложность тут в следующем - для обновления физики и последующего изменения координат\углов наклона всех тел используется таймер (назовём его Таймер2), присоединённый ко слоту updatePhysics(); дело в том, что в некоторых случаях при вычислении столкновений тел приложение падает. намертво виснет. и дело не в указателях, я проверял. указатели всегда правильные, память чистится вовремя и там, где нужно. кажется, дело может быть только как раз в том, что оба таймера используют один контейнер: физика обновляется очень часто, порядка 30 раз в секунду, и из-за этого могут возникнуть какие-нибудь конфликты. вопрос как раз в следующем: как работают таймеры в Qt? ничего многопоточного писать ещё не приходилось, поэтому не до конца представляю, что, собственно, может происходить. выполнится ли слот, присоединённый к событию timeout() таймера, если предыдущий вызот слота ещё не был завершён? |
|
|
Текстовая версия | Сейчас: 29.1.2025, 8:55 |