crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Урок 11 Попробуем выстрелить;Баг отрисовки - как исправить?, "Мерцание" отрисовки, искажение формы снаряда
I_Wanna_Know
  опции профиля:
сообщение 28.8.2014, 16:40
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 28.8.2014
Пользователь №: 4213

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго времени суток уважаемые форумчане!

Я новичок в Qt, изучаю фреймворк по урокам с вашего портала(за что отдельное спасибо старавшимся) в общем то в этом уроке , при компиляции его с исходников (всё корректно скопипаcтенно опечатки исправлены) происходит некорректное отображение снаряда он по всей траектории полёта меняет свой размер(становится то больше то меньше), не на всём пути траектории отрисовывается и внезапно рывками появляется дальше по траектории и как бы "мерцает", сначала думал что это проблемы буфферизации, но почитав доки понял вроде как с Qt4+ двойная буферизация в виджетах включена по умолчанию ...в общем не знаю что и думать, помогите пожалуйста исправить этот баг или хотя бы подскажите как в рамках этого урока по другому переписать виджет.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
I_Wanna_Know
  опции профиля:
сообщение 1.9.2014, 11:19
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 28.8.2014
Пользователь №: 4213

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(FireBlack @ 1.9.2014, 6:25) *
Точно не скажу, но предполагаю что region неполностью охватывает облать, необходимую для перерисовки

Я тоже о чём то подобном думал, но
Цитата(FireBlack @ 1.9.2014, 6:25) *
он не учитывает скорость снаряда и если ее увеличить - мерцание опять появится.

Учитывая это мне начинает казаться, что это не из-за того что он не всю область охватывает, а в том как работает сама функция update и учитывая
Цитата(Litkevich Yuriy @ 1.9.2014, 10:39) *
Функция update() не перересовывает виджет, а только планирует его перерисовку (всего виджета или только его части). А вот сама перерисовка произойдёт через неопределённое время,

И вызовется PaintEvent это написано в описании этой функции, но я то думал что это как раз таки для повышения производительности и более быстрой отрисовки оказалось что чуть ли не наоборот...
Цитата(Litkevich Yuriy @ 1.9.2014, 10:39) *
поэтой причине пытаться учесть скорость не получиться. А ограничить перерисовку некоторой областью хочется, чтобы сократить затраты времени на неё.
По этому реальный выход из ситуации - эксперементально подобрать область виджета, в которой (одновременно) только что был, и в которой может оказаться снаряд.


А вот это уже полный геморой как то это не красиво чтоли....
Кстати Litkevich Yuriy быть может вы знаете более надёжный и быстрый способ отрисовки 2D графики в Qt ? Вообще с помощью чего можно переделать этот урок?!

З.Ы, жаль на этом форуме нет функционала редактирования или удаления своих постов :-(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 5:29