![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2011
Сообщений: 13
|
Здравствуйте!
Я делаю 3д салют, а поскольку там много мелких обьектов, то много чего есть оптимизировать. 1) Стандартная функция мас.рандом долго работает(когда вызывается много раз). К примеру, если мне нужно случайное число 1, 2 или 3, то использовать рандом вообще нерационально... 2) Класс, который отвечает за искорку, я делал мувиком, но думаю что лучше сделать спрайтом. Тогда можно ли будет чтобы с ним что-то происходило каждый кадр(Event.ENTER_FRAME) - у спрайтов же нет таймлайна? (чувствую, этот вопрос самый тупой) 3) Функция f.sortOn("z", Array.NUMERIC) вроде тоже долго работает. Можно ли сортировать с точностью до целых??? (например, мне неважно если обьект с координатой 100.00002 будет ближе чем 100.00001, а флеш-то по этому поводу заморачивается )4) На сколько API рисование работает быстрее, чем если накидать спрайтов и мувиков из библиотеки? 5) По поводу з-сортировки - лучше всего создать публичный массив, в него пушем кидать спрайты, мувики, классы, а потом сортОном делать з-сортировку каждый кадр? Спасибо!! Последний раз редактировалось nitratus; 21.01.2012 в 17:13. |
|
|||||
|
попробую чем могу
1) не о чем вопрос долго это сколько?, где конкретно Math.random стал вдруг узким местом? ну и альтернативы все равно нет, любой самописный рандом будет медленнее нативного 2) если нет нужды в таймлайне, то естественно спрайт лучше (правда, на производительности это мало скажется) Event.ENTER_FRAME это broadcast event, т.е. его получают все дисплейОбжекты, независимо от таймлайна или даже присутствия на сцене 3) с сортировкой у флеша не очень хорощо обстоит дело, а с сортировкой по какому-то полю (sortOn) в особенности лучше (быстрее) всего сортируется как раз массив целых, я бы его и сортировал, т.е.отдельный массив, в который складываются не объекты, а значения нужного параметра, сортируем с опцией Array.RETURNINDEXEDARRAY, полученный массив индексов используем для расстановки или чего еще использовать ли встроенный sort или какой из самописных навскидку сказать нельзя, все по месту надо тестировать-проверять, гугл легко даст массу вариантов, тема актуальная и еще такой момент: сортировка может оказать и не самым узким местом, например, в сравнении с тормозами от отрисовки графики, т.е. может быть и сильно заморачиваться нет смысла, но опять же проверять-смотреть надо по месту 4)имхо, не имеет значения, поскольку тормоза в основном при отрисовке плеером графики, а не при ее создании, другими словами неважно откуда графика из библиотеки или созданная программно, если она "тяжелая", то тормозить будет одинаково 5) нет однозначных советов, но тема популярная, поройся хоть бы и на флешере |
|
|||||
|
Регистрация: Dec 2011
Сообщений: 13
|
Еще раз спасибо, вроде все ясно)
Но по поводу раднома: если у меня 1000 частиц, у каждой по 5 параметров, и каждый кадр параметр задается рандомно, то явно медленнее все работает. Если отключить random, то работает быстрее. ПС ой, а как же достучаться до массива с мувиками из какого-то класса? Массив называется a, я к нему обращался и root.a, и stage.a, ничего не выходит. Последний раз редактировалось nitratus; 21.01.2012 в 23:00. |
|
|||||
|
>> Если отключить random, то работает быстрее.
это фактический факт, не поспоришь ![]() только есть подозрение, что собственно Math.random здесь не особо при чем, в том смысле, что затраты на него скорее всего несопоставимо меньше, чем на изменение параметров и рендеринг этих изменений т.е. вопрос, чаще всего, не в том менять ли по рандому или по кругу, а в том что, у кого и как часто менять |
|
|||||
|
Регистрация: Dec 2011
Сообщений: 13
|
>>только есть подозрение, что собственно Math.random здесь не особо при чем
Я делал 3д фонтан из кружочков, когда кружок падает, то он переносится в исходную точку и ему присваиваются новые скорости небольшой разброс по координатам. Так вот, я пытался управлять формой фонтана, задавая начальные положения частиц, скорости; во время полета рендомный дрейф им делал; эти рендомы перемножал, мешал с синусами и т.д. Графика от этого не изменилась, но степень подтормаживания заметно зависела от количества рендомов. (а когда всем частицам одновременно задаются начальные параметры(первый кадр), то вообще заметно тормозит, если всем одинаковые параметры дать (почти) то в первом кадре не подвисало, так что рендом тоже грузит) Частиц было где-то 1500. |
|
|||||
|
Может, попробовать воспользоваться твинерами?
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Регистрация: Dec 2011
Сообщений: 13
|
а что за твинеры?
|
|
|||||
|
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Регистрация: Dec 2011
Сообщений: 13
|
Демки на сайте выглядят внушающе)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 17:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|