![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 15
|
Может быть раздел для темы выбран не совсем правильно, но раз уж перемещение программное, пусть пока здесь будет.
Данный вопрос на форуме уже поднимался, но мне кажется, освещен был не до конца. Перемещаю по сцене картинку с фоном(разрешение примерно 7000х1200), все было нормально, пока на сцене поверх этой картинки не расположил другие мувиклипы, после этого загрузка проца поднялась до 100%, а фпс клипа упало до 20 (выставленное фпс - 30). Сначала думал, что дело в размере картинки, уменьшил до размеров отображаемой области - ничего не изменилось. Выяснилось что дело в свойстве Allow Smoothing, убрал его, фпс выросло, загрузка проца - 20%. Но фон начал двигаться прерывисто(фон в один кадр может двигаться меньше чем на 1 пиксель, избежать этого очень трудно, т.к. скорость движения может меняться). Ко всему, если фон двигается очень быстро, то картинка как-бы рассыпается(как будто какая-то часть картинки движется быстрее других и получается некое смещение), проверено на быстрых и медленных компьютерах, на более быстрых эффект проявляется не так сильно. Тут уже не помогает ни Allow Smoothing ни cacheAsBitmap. Есть ли какие-нибудь способы, методы, при программировании платформеров чтобы избежать подобных проблем, при этом сохраняя производительность? Заранее спасибо. |
|
|||||
|
Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
|
Цитата:
))Цитата:
|
|
|||||
|
Регистрация: Dec 2008
Сообщений: 15
|
Цитата:
Но, увы, такой эфеект замечали все, даже люди не посвященные в программирование и всем видно, что "так не должно быть". Вот, к примеру игра, в которой картинка не "рассыпается", причем судя по всему, картинка не маленькая и движется быстро. http://www.gamesheep.com/game/moon-buggy/ Цитата:
|
|
|||||
|
Modus ponens
|
Не двигать такую большую картинку - таких широких мониторов не бывает
перерисовывать только видимую часть.ЗЫ, я так понимаю, картинка все равно много весит - тогда, еще вариант, вообще, отрендерить движение в видео и прокручивать видео... тогда вообще совсем гладко получится.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 09.03.2009 в 19:46. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Да нет, она тоже дискретно движется. Просто в силу небольшого вьюпорта, картинка не бьется.
|
|
|||||
|
Регистрация: Jun 2008
Сообщений: 51
|
Самый простой способ - отрендерить картинку в BitmapData, потом методом copyPixels помещать в основной вид только нужную часть. Единственное, при размере в 7000х1200 использование памяти будет бешеное.
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
2wvxvw:
Цитата:
|
|
|||||
|
Modus ponens
|
flv - не единственный формат, можно и в FlashVideo по объему - практически одно и то же получиться. Ну и спокойно эмбедиться и покадрово перематывается.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Jun 2008
Сообщений: 51
|
wvxvw,если я правильно понял, автор темы делает игру-платформер, а размер в 7000х1200 говорит нам о том, что перемещаться фон должен не только по горизонтали, но еще и по вертикали. Если же сделать видео с перемещением, допустим, по горизонтали, высотой в 1200 пикселей, а потом его двигать по вертикали, чтобы нужное место отображалось - то это будет страшно и по памяти, и по процессору.
|
|
|||||
|
Modus ponens
|
А ну тогда - да, с видео не получится... не подумал
![]() Ну еще, как вариант - разбить картинку на много маленьких, сначала рассчитывать, какие из них видны, и потом аттачить / отрисовывать только то, что видно.
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|