как оптимизировать множественную анимацию |
Здравствуйте, гость ( Вход | Регистрация )
как оптимизировать множественную анимацию |
freydev |
19.3.2010, 14:38
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 19.3.2010 Пользователь №: 1549 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго дня, подскажите как отрисовать на сцене множество объектов(около 100), каждый из которых анимирован...
анимация построена на замене картинки по таймеру...есть класс, он загружает картинку и по интервалу меняет её на другую, при добавлении в сцену объектов этого класса в количестве 3 или больше, анимация идет только если водить мышкой по сцене, с графикой никогда не работал, может чтото не правельно сделал, заранее спасибо, вот исходник... Раскрывающийся текст
не нашел кнопки редактирования... вот так это добавляется в сцену... Раскрывающийся текст
Доброго дня, подскажите как отрисовать на сцене множество объектов(около 100), каждый из которых анимирован... анимация построена на замене картинки по таймеру...есть класс, он загружает картинку и по интервалу меняет её на другую, при добавлении в сцену объектов этого класса в количестве 3 или больше, анимация идет только если водить мышкой по сцене, с графикой никогда не работал, может чтото не правельно сделал, заранее спасибо, вот исходник... Раскрывающийся текст
не нашел кнопки редактирования... вот так это добавляется в сцену... Раскрывающийся текст
gif не предлагать) |
|
|
BRE |
19.3.2010, 15:24
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
По-моему, каждый раз загружать картинку и создавать для него маску это грубо.
Проще это сделать в конструкторе один раз, а по срабатыванию таймера только установить их. По проблеме с анимацией, попробуй установить для своего QGraphicsView флаг QGraphicsView::BoundingRectViewportUpdate: view.setViewportUpdateMode( QGraphicsView::BoundingRectViewportUpdate ); |
|
|
freydev |
19.3.2010, 20:57
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 19.3.2010 Пользователь №: 1549 Спасибо сказали: 0 раз(а) Репутация: 0 |
По-моему, каждый раз загружать картинку и создавать для него маску это грубо. Проще это сделать в конструкторе один раз, а по срабатыванию таймера только установить их. По проблеме с анимацией, попробуй установить для своего QGraphicsView флаг QGraphicsView::BoundingRectViewportUpdate: view.setViewportUpdateMode( QGraphicsView::BoundingRectViewportUpdate ); грубо да) но это прототип, и там много спрайтов будет разной формы, придется наверно динамически добавлять удалять, спасибо за совет, но флаг не помог( |
|
|
BRE |
19.3.2010, 21:14
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
freydev |
19.3.2010, 22:57
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 19.3.2010 Пользователь №: 1549 Спасибо сказали: 0 раз(а) Репутация: 0 |
грубо да) но это прототип, и там много спрайтов будет разной формы, придется наверно динамически добавлять удалять, спасибо за совет, но флаг не помог( Выложи в архиве весь проект, что бы он компилировался. Посмотрю. http://files.mail.ru/KQKMDF |
|
|
BRE |
19.3.2010, 23:33
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
грубо да) но это прототип, и там много спрайтов будет разной формы, придется наверно динамически добавлять удалять, спасибо за совет, но флаг не помог( Выложи в архиве весь проект, что бы он компилировался. Посмотрю. http://files.mail.ru/KQKMDF Ну у меня работает, без дополнительных движений. Linux + Qt 4.6.2 |
|
|
freydev |
19.3.2010, 23:36
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 19.3.2010 Пользователь №: 1549 Спасибо сказали: 0 раз(а) Репутация: 0 |
грубо да) но это прототип, и там много спрайтов будет разной формы, придется наверно динамически добавлять удалять, спасибо за совет, но флаг не помог( Выложи в архиве весь проект, что бы он компилировался. Посмотрю. http://files.mail.ru/KQKMDF Ну у меня работает, без дополнительных движений. Linux + Qt 4.6.2 Windows =) |
|
|
Litkevich Yuriy |
19.3.2010, 23:45
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
freydev, не цитируй целыми сообщениями. Тяжело читать.
О том, как быстро процитировать часть сообщения, смотри тему Справка по кнопкам и тэгам форума |
|
|
freydev |
20.3.2010, 20:02
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 19.3.2010 Пользователь №: 1549 Спасибо сказали: 0 раз(а) Репутация: 0 |
запустил на linux'e, тоже норм работает, хм, а что может мешать в винде?
|
|
|
IMPOMEZIA |
21.3.2010, 9:55
Сообщение
#10
|
Студент Группа: Участник Сообщений: 42 Регистрация: 18.2.2009 Пользователь №: 560 Спасибо сказали: 2 раз(а) Репутация: 0 |
freydev
С вашим кодом всё в порядке, попробуйте Qt 4.6.0 под Windows, всё будет работать, как задумано. P.S. Сообщите кто нибуть об этом, если троли ещё не в курсе. |
|
|
Текстовая версия | Сейчас: 20.4.2024, 1:29 |