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

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

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

Регистрация: Dec 2012
Сообщений: 20
По умолчанию Перемещение объектов вместе с фоном

Вобщем задача такая:
есть фон и множество объектов на фоне. обычное перемещение(перемещение каждого объекта отдельно) не подходит, ибо этих объектов может быть несколько тысяч и время перемещения сами понимаете может быть огромным(10000объектов*100пикселей перемещения - это уже огого)...Можно ли как то указать относительные координаты(в данном случае относительно фона) или сделать аттачинг объектов к фону?

Вобщем нужен баровый график типа http://help.adobe.com/ru_RU/FlashPla...HLOCChart.html
но без флекса

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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
"Аттачинг" конечно к фону

Скорее добавление и объектов и фона на один спрайт.
А там уже в зависимости от позиции этого глобального контейнера - убирание/добавление фона и объектов, если оно надо.

Бояться того, что при перемещении к концу у Вас будут координаты x > 9000 и даже больше 90 000 не стоит - проблемы с производительностью зависят от размеров области перерисовки, количества объектов, но не от величины координат.

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

Регистрация: Dec 2012
Сообщений: 20
Цитата:
Сообщение от expl Посмотреть сообщение
"Аттачинг" конечно к фону
Бояться того, что при перемещении к концу у Вас будут координаты x > 9000 и даже больше 90 000 не стоит - проблемы с производительностью зависят от размеров области перерисовки, количества объектов, но не от величины координат.
я имею ввиду если перемещать 100 000 объектов на 100 пикселей то перемещение на каждый пиксель будет оч долгим(100 исполнений функции перемещения для каждого объекта).

Старый 12.12.2012, 17:41
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 4  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Выполнение функции перемещения на фоне рендеринга объекта ест исчезающе мало.

Я порекоммендовал запихать в один контейнер, предположив, что у Вас платформер и так тупо проще уследить за оъектами.

А если есть проблемы с производительностью (есть или есть только предположения, кстати?) опишите чего вы конкретно делаете, может подскажу.

Старый 12.12.2012, 18:35
FiftyStars вне форума Посмотреть профиль Отправить личное сообщение для FiftyStars Найти все сообщения от FiftyStars
  № 5  
Ответить с цитированием
FiftyStars

Регистрация: Dec 2012
Сообщений: 20
Цитата:
Сообщение от expl Посмотреть сообщение
Выполнение функции перемещения на фоне рендеринга объекта ест исчезающе мало.

Я порекоммендовал запихать в один контейнер, предположив, что у Вас платформер и так тупо проще уследить за оъектами.

А если есть проблемы с производительностью (есть или есть только предположения, кстати?) опишите чего вы конкретно делаете, может подскажу.
проблемы с производительностью только теоретически пока что...10млн выполнений функции перемещения для перемещения 100 000 объектов на 100 пикселей неплохие лаги, думаю, дадут

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

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Гоу сразу демку следующим постом + исходный код демки + описание задачи конкретное, а не на уровне абстракций.
__________________
hauts.ru

Старый 12.12.2012, 20:05
FiftyStars вне форума Посмотреть профиль Отправить личное сообщение для FiftyStars Найти все сообщения от FiftyStars
  № 7  
Ответить с цитированием
FiftyStars

Регистрация: Dec 2012
Сообщений: 20
Цитата:
Сообщение от Hauts Посмотреть сообщение
Гоу сразу демку следующим постом + исходный код демки + описание задачи конкретное, а не на уровне абстракций.
код и демо не могу сейчас - на рабочем пк хранится все.
А описание было - свечно-баровый график без флекса. свечей в теории может быть до полумиллиона(ограничение количества и своевременная подгрузка это позже будет).
Соответственно все свечи сразу я увидеть не смогу, нужно перемещаться по графику, вот думаю как это сделать. То есть для перемещения нужно либо менять точку обзора(что не знаю возможно ли вобще или нет), либо при драге мышью перемещать каждую свечку, либо (тоже не в курсе осуществимо ли) привязать все свечи к фоновому прямоугольнику(относительные координаты?) и перемещать только его. Вобщем хотелось бы узнать: что из этого осуществимо, что проще и что быстрее? Прошу прощения, может топик тупой но просто я перехожу на АС с др. языков. Пока что еще не очень вкуриваю возможности языка

Старый 12.12.2012, 20:29
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 8  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Если у вас уже скролится график, вы можете запомнить координаты каждой свечи, и при скролле, если мы дотянули график до такой-то координаты, можно отобразить свечу.
К примеру:
Длинна графика 5000 пихелей.
Ширина сцены - 640 , следовательно отображаем изначально все свечи с 0 <= x <= 640.
При перемещении по графику отображаем свечи в соответствии с текущими координатами, а те что не вписываются в них - убираем со сцены.

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

Регистрация: Dec 2012
Сообщений: 20
Цитата:
Сообщение от AlexLucas Посмотреть сообщение
Если у вас уже скролится график, вы можете запомнить координаты каждой свечи, и при скролле, если мы дотянули график до такой-то координаты, можно отобразить свечу.
К примеру:
Длинна графика 5000 пихелей.
Ширина сцены - 640 , следовательно отображаем изначально все свечи с 0 <= x <= 640.
При перемещении по графику отображаем свечи в соответствии с текущими координатами, а те что не вписываются в них - убираем со сцены.
задача не та...
задача в том каким образом организовать перемещение по графику а отображение/скрытие это из другого леса

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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
То есть для перемещения нужно либо менять точку обзора(что не знаю возможно ли вобще или нет)
Можно пододвигать контейнер таким образом, чтобы требуемая точка была в центре экрана (математикой, возможно с использованием localToGlobal/globalToLocal)

Общий совет:
- сделайте 500 000 точек (хоть с помощью Math.random, хоть любой другой функцией)
- посмотрите реальные тормоза
- а уже потом что-то делайте и смотрите стало лучше или нет.
Просто без реальных тестов пытаться оптимизировать (особенно отрисовку, а не алгоритмы) - дело безнадёжное - есть неслабые шансы сделать ещё медленне

Один совет:
- если всё Вы это сделали и fps падает при простом проведении мыши - значит надо убирать объекты за пределами видимости с экрана,
если при проведении мыши над свечками - ни просадки fps - ни нагрузки на процессор - то не факт что поможет - рендерится то ведь только то уместилось на экране, а считается для мыши всё что уместилось и что не уместилось.

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

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

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


 


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


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