|
|
|||||
Регистрация: Jun 2014
Сообщений: 558
|
Проблемы с производительностью
Добрый день, вопрос по оптимизации игрушки. Где что можно посмотреть Adobe Flash Professional CC 2014 что может влиять на производительность?Просто хочу изначально убедиться, что это я слишком много хочу, чем флеш может дать. Изначально ничего не использовал (сглаживание и т.п.), т.к не было необходимости, вдруг что-то по умолчания включено? Просто всего около 50 объектов, половина из них движется и проверяется обычным hittest, вторая половина просто изменяет scaleX, scaleY и alpha. Количество объектов динамически изменяется, обычно только первые 25 и всё хорошо, а когда добавляются остальные 25, то начинаются тормоза(чем лиже к 50, тем сильнее). Все объекты - части различных массивов, код приводить нет смысла, так как больше 600 строк. В дальнейшем в планах количество объектов увеличиться до 75, но проблемы уже с производительностью есть.
Добавлено через 3 минуты Утечки памяти нет, проц иногда при максимальном количестве объектов прогружается до 85%. Рукурсивные функции не использовал |
|
|||||
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Проверьте через scout. Наверняка станет понятно, в чём проблема.
|
|
|||||
Регистрация: Jun 2014
Сообщений: 558
|
слышал об этой проге, хорошо, отпишусь что выдаст
|
|
|||||
я бы посоветовал MonsterDebugger +
1. используйте cacheAsBitmap = true; 2. кеширование анимации 3. если графика статичная - растрировайте её ( снимайте битмапу, очищайте сцену от дисплейобджектов, вместо них вставляйте битмапу ) 4. если элементы повторяются используйте синглтоны - т.е. графика лежит в 1 битмапдате, а экземпляры получают прямую ссылку на неё. для начала хватит
__________________
return this... |
|
|||||
Регистрация: Jun 2014
Сообщений: 558
|
AlexCooper по 4-му пункту поподробней, у меня много повторяющихся элементов, пихаю их в массив, т.к. нужно сохранять ихние параметры, размеры, скорость, поворот, т.п.+свои
cacheAsBitmap - можно применять к массивам? ещё cacheAsBitmap нужно присваивать true к объекту до его выведения на экран(задать координаты и т.п.) или после или без разницы? вообще тормоза начинаются когда создаётся > 25 объектов, у которых одновременно изменяется альфа и размер Добавлено через 2 часа 42 минуты У меня все объкты динамичны, с каждым что-то да происходит в каждом кадре Добавлено через 12 часов 30 минут еще померял фпс в приложение, технически даж при максимальной нагрузке остаётся 24 кадра(задано 40), но ведь расчёты флеш делает в каждом кадре, соответственно с изменением количество кадров приводит к замедлению расчётов и все объекты движутся медленнее. Тогда почему в играх нет разницы между 50 и 80 фпс? Получается как-то связывают производительность ЦП и видюхи, при этом берут в расчёт, что игра не должна ускорятся или замедляться в зависимости от производительности проца? Последний раз редактировалось neonoviiwolf; 08.11.2014 в 05:57. |
|
|||||
Регистрация: May 2009
Сообщений: 26
|
Цитата:
Например, тебе надо, чтобы объект проходил по горизонтали 100 пикселей за 1 секунду. Допустим, тебе известно сколько времени прошло с прошлого кадра и оно содержится в переменной deltaT, тогда, чтобы сдвинуть объект нужно написать так: Таким образом при любом фпс объекты будут двигаться с одной скоростью. Просто при высоком фпс движения будут плавными, а при низком "дерганными". |
|
|||||
С чего начать
Цитата:
к массивам? Каким Вы представляете компилятор будет преобразовывать массив в Битмапу? + Используйте плотные массивы, они быстрее var user1:UserUI = new UserUI(); var user2:UserUI = new UserUI(); var users:Vector.<UserUI> = new Vector.<UserUI>; users.push( user1 ); users.push( user2 ); Цитата:
Картинки обгоняют вектор! Цитата:
закуска Кеширование MovieClip Из вектора в растр Почему cacheAsBitmap плох Решение проблемы производительности во Flash
__________________
return this... |
|
|||||
Регистрация: Jun 2014
Сообщений: 558
|
AlexCooper спасибо, буду осваивать
|
Часовой пояс GMT +4, время: 21:54. |
|
« Предыдущая тема | Следующая тема » |
|
|