Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Прокрутка сцены (http://www.flasher.ru/forum/showthread.php?t=169167)

ch3cker 28.09.2011 20:25

Прокрутка сцены
 
Делаю игру на box2d, вот локация увеличилась и встал вопрос как же двигать сцену так чтобы было видно объекты за ее пределами?
Какие вообще есть варианты? И какой по вашему мнению, наиболее оптимален в плане производительности?

Inet_PC 28.09.2011 22:31

scrollRect ?

stweet 29.09.2011 01:06

Цитата:

Сообщение от ch3cker (Сообщение 1035568)
И какой по вашему мнению, наиболее оптимален в плане производительности?

Держать сцену в уме и рисовать только то что хочет юзер.

goodguy 29.09.2011 07:34

У меня есть фоновая битмапка, размеры которой просчитываются каждый раз при изменении размеров сцены так, чтобы она была в полтора раза шире и выше сцены. При смещении контейнера с этой битмапкой происходит расчет того, на сколько колонок (они равны ширине отдельного куска карты) сместилась карта, и недостающие куски врисовываются (через BitmapData#copyPixels()), а ненужные наоборот перекрываются. При этом и сама битмапка смещается на ширину недостающих колонок в противоположную сторону. Таким образом, при относительно небольшом размере экранной битмапки, в нее можно врисовывать карту любых размеров, даже если они превыщают допустимые для одной битмап даты.
А сами куски, заранее нарезанной карты, хранятся в двухмерном векторе
Код AS3:

private var _map:Vector.<Vector.<BitmapData>>

Алгоритм сложный, поэтому выкладывать не буду, но работает отлично. Не тормозит даже на относительно слабых компах, при довольно больших размерах карты. Так что советую подумать над чем-то подобным.

п.с. бокс2д сюда вообще ни коим боком не относится.


Часовой пояс GMT +4, время: 01:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.