Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.11.2013, 18:15
Universe вне форума Посмотреть профиль Отправить личное сообщение для Universe Найти все сообщения от Universe
  № 1  
Ответить с цитированием
Universe
 
Аватар для Universe

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
Arrow Как правильно создать "огромную" локацию

Есть задача, создать локацию, которая по размерам будет примерно 16 на 16 тысяч пикселей. Для экономии ресурсов для локации буду использовать тайлы размером 256 на 256 px. Однако, даже при использовании тайлов производительность значительно падает. Подскажите, плиз, как правильно сделать подобную локацию, чтобы не падала производительность.

Старый 26.11.2013, 20:13
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Цитата:
Подскажите, плиз, как правильно сделать подобную локацию, чтобы не падала производительность.
Вероятнее всего старательно, вдумчиво, тестируя и исправляя ошибки запрограммировать оптимальную реализацию.

Давайте конкретнее разбираться, иначе толку от таких поверхностных разговоров совсем нет.

Покажите флэшку, для начала. Ну и код, само-собой.
__________________
hauts.ru

Старый 26.11.2013, 20:17
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 3  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Подгружать/выгружать нужные и не нужные тайлы?
Хранить данные не изображением и не DO, а в каком-то текстовом формате (JSON, XML).
Profit?

Старый 26.11.2013, 20:19
shaman4d вне форума Посмотреть профиль Отправить личное сообщение для shaman4d Найти все сообщения от shaman4d
  № 4  
Ответить с цитированием
shaman4d
 
Аватар для shaman4d

Регистрация: Jun 2008
Сообщений: 204
Цитата:
Сообщение от Universe Посмотреть сообщение
Есть задача, создать локацию, которая по размерам будет примерно 16 на 16 тысяч пикселей. Для экономии ресурсов для локации буду использовать тайлы размером 256 на 256 px. Однако, даже при использовании тайлов производительность значительно падает. Подскажите, плиз, как правильно сделать подобную локацию, чтобы не падала производительность.
Я так думаю телепатов здесь нет, может вы сначала расскажете как сделали вы? покажете что у вас получилось...

Старый 26.11.2013, 22:04
haru вне форума Посмотреть профиль Найти все сообщения от haru
  № 5  
Ответить с цитированием
haru
 
Аватар для haru

Регистрация: Mar 2013
Сообщений: 10
А может комп по новее купить...

Старый 26.11.2013, 22:21
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 6  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Цитата:
А может комп по новее купить...
Не у всех "супер-компы" дома, так что нужно думать не только про мощные компьютеры.

Старый 26.11.2013, 22:22
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 7  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Есть карта. Вся. Поделеная на тайлы.
Есть вью-порт. То что видно на екране, + зазор по краям на полтайла-тайл.

Следим за вьюпортом. Всё что вне его - убираем. Насколько сильно надо убирать - сами разберетесь. Может просто визибл фолс хватит. А может и вообще картинки дестроить придется полностью.
Когда вьюпорт попадает на невидимый блок - создаем и показываем. Для этого и зазор нужен. А то может получиться что на краю экрана будет пустой тайл, не отрисованный.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 27.11.2013, 08:46
bifidokk вне форума Посмотреть профиль Отправить личное сообщение для bifidokk Найти все сообщения от bifidokk
  № 8  
Ответить с цитированием
bifidokk
 
Аватар для bifidokk

Регистрация: Jan 2011
Сообщений: 200
Цитата:
Сообщение от haru Посмотреть сообщение
А может комп по новее купить...
и всем игрокам в дальнейшем это же посоветовать

Старый 27.11.2013, 08:59
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 9  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Решал я как-то такую задачу у себя в игре. Схема получилась длинная и сложная, но работает как часы. Карты можно делать очень большие, без потери производительности.
Решение было почти как описал Dukobpa3, только у меня для большей части работы используется метод copyPixels(). То есть изначально создается картинка, размером чуть больше экрана. И на основе позиций объектов, описанных в xml, в нее при смещении врисовывается нужная картинка, Но не так, что при смещении на один пиксель она снова перерисовывается, а, скажем, сместилась она на ширину кратную ширине одного тайла (200px), возвращаем ее в исходное положение (на 200 пикселей назад) и перерисовываем. Так для всех тайлов, которые могут быть на экране в данный момент. Это решение подходит для всех объектов, которые не нужно сортировать. Все они врисовываются в нужные тайлы еще на этапе парсинга карты. Далее они просто ложатся в коллекцию (создавал специально, чтобы можно было просто найти объект, на основе его координат)
А для объектов, которые подлежат сортировке, используется вьюпорт. Простая проверка "за пределами экрана" или нет. Так как их гораздо меньше, чем тайлов, то тут можно и removeChild() / addChild() использовать

В общем, в любом случае придется голову поломать. Простого решения тут нет.

Старый 27.11.2013, 12:22
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 10  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Да оно и без всяких махинаций с copyPixels не должно тормозить
Просто убирайте невидимые тайлы из списка отображения (removeChild)
(только не в каждом кадре убирать всё и добавлять видимое, а удалять/добавлять только при изменении статуса видимости - определялка областей перерисовки к этому делу очень чуствительна)
Еще всё гораздо быстрее работает, если битмапа в тайлах не поддерживает прозрачность.

Стоп, 16000x16000 - да у вас там под гигабайт всего. Может редактор написать и попереиспользовать одинаковые тайлы.
Хотя, если оно не перерисовывается и в JPEG, то занимать будет мало.
Короче, нужно больше информации. Т.к. причины тормозов не понятны.

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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