Здравствуйте, гость ( Вход | Регистрация )
|
freydev |
19.3.2010, 14:38
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 19.3.2010 Пользователь №: 1549 Спасибо сказали: 0 раз(а) Репутация: 0
|
Доброго дня, подскажите как отрисовать на сцене множество объектов(около 100), каждый из которых анимирован...
анимация построена на замене картинки по таймеру...есть класс, он загружает картинку и по интервалу меняет её на другую, при добавлении в сцену объектов этого класса в количестве 3 или больше, анимация идет только если водить мышкой по сцене, с графикой никогда не работал, может чтото не правельно сделал, заранее спасибо, вот исходник... Раскрывающийся текст не нашел кнопки редактирования... вот так это добавляется в сцену... Раскрывающийся текст Цитата(freydev @ 19.3.2010, 16:34) Link Доброго дня, подскажите как отрисовать на сцене множество объектов(около 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
|
Цитата(BRE @ 19.3.2010, 17:24) Link По-моему, каждый раз загружать картинку и создавать для него маску это грубо. Проще это сделать в конструкторе один раз, а по срабатыванию таймера только установить их. По проблеме с анимацией, попробуй установить для своего QGraphicsView флаг QGraphicsView::BoundingRectViewportUpdate: view.setViewportUpdateMode( QGraphicsView::BoundingRectViewportUpdate ); грубо да) но это прототип, и там много спрайтов будет разной формы, придется наверно динамически добавлять удалять, спасибо за совет, но флаг не помог( |
|
|
|
freydev как оптимизировать множественную анимацию 19.3.2010, 14:38
BRE Цитата(freydev @ 19.3.2010, 20:57) грубо ... 19.3.2010, 21:14
freydev Цитата(BRE @ 19.3.2010, 23:14) Цитата(fre... 19.3.2010, 22:57
BRE Цитата(freydev @ 19.3.2010, 22:57) Цитата... 19.3.2010, 23:33
freydev Цитата(BRE @ 20.3.2010, 1:33) Цитата(frey... 19.3.2010, 23:36
Litkevich Yuriy freydev, не цитируй целыми сообщениями. Тяжело чит... 19.3.2010, 23:45
freydev запустил на linux'e, тоже норм работает, хм, а... 20.3.2010, 20:02
IMPOMEZIA freydev
С вашим кодом всё в порядке, попробуйте Qt... 21.3.2010, 9:55
Litkevich Yuriy Цитата(IMPOMEZIA @ 21.3.2010, 12:55) P.S.... 21.3.2010, 11:03
IMPOMEZIA Цитата(Litkevich Yuriy @ 21.3.2010, 11:03... 21.3.2010, 11:18
Litkevich Yuriy IMPOMEZIA, чтобы о проблеме рапортовать, лучше нап... 21.3.2010, 11:34
IMPOMEZIA Цитата(Litkevich Yuriy @ 21.3.2010, 11:34... 21.3.2010, 12:02
freydev Цитата(IMPOMEZIA @ 21.3.2010, 13:18) Да, ... 21.3.2010, 16:17
IMPOMEZIA Цитата(freydev @ 21.3.2010, 16:17) Может ... 21.3.2010, 19:42
freydev А он прав, поставил 4.6.0, все работает как часы, ... 22.3.2010, 1:08
Litkevich Yuriy Цитата(freydev @ 22.3.2010, 4:08) А он пр... 22.3.2010, 1:19
freydev IMPOMEZIA Теперь маска по цвету не хочет создавать... 22.3.2010, 1:51
freydev а тут все ясно, windows 7 не поддерживается 22.3.2010, 19:46![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 8.1.2026, 1:56 |