![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 65
|
Есть большой мир в виде битмапа, где ширина больше предельных для битмапдаты значений.
На ум приходят несколько вариантов скролла такого мира: Загрузить такой битмап кодом или заранее положить в ide, и 1) При скролле отображать на экране (800*600) только видимую часть используя copyPixels из исходного битмапа 2) создать 3 битмапа шириной в экран(800) и высотой, скажем 2 экрана (1200), где средний - видимый, а крайние - буфферные. Далее они склеиваются и берут содержимое из исходного битмапа. Таким образом склейка из этих 3 битмапов представляет собой часть исходного битмапа, шириной в 3 экрана, но видим мы только средний. Дальше скроллится склейка из этих трёх битмапов. Затем в нужный момент, буфферные битмапы меняют положение. Так что бы слева и справа снова была "пища для скролла". Таким образом копируем пиксели из исходника только в самом вначале и в момент переноса буфферых битмапов. Дальше нужно проверять коллизии на уровне пикселей. Получается, что в первом случае, при любом движении, мы каждый кадр копируем пиксели из исходника, а затем провряем коллизии с получившимся битмапом Во втором случае мы копируем пиксели только когда один из буферных битмапов полностью или почти полностью "выехал" на экран, но коллизии в этом случае мы проверяем с всеми 3 битмапами. Вопрос: Какой из этих двух вариантов будет быстрей. |
![]() |
Часовой пояс GMT +4, время: 02:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|