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

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

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

Регистрация: Feb 2014
Сообщений: 25
По умолчанию Негативный эффект при скроллинге.DisplayList Rendering

Здравствуйте. При скроллинге уровня в игре (эскиз игры) режит глаза, рывки, при быстром перемещении не планое отображение спрайтов. С чем это связано? С фоном, цветами, частотой кадров, не оптимизированным кодом? И как можно это исправить?

При тесте Scout CC
AS - 1-3ms
DisplayList Rendering - 15ms и больше
Other - 1-2 ms

Прикреплено 2 варианта, с жестким скроллингом и и более "слабым" ну и разница ощутима

V1.swf   (18.4 Кб)

V2.swf   (18.4 Кб)


BoyV1.swf

BoyV2.swf

Старый 16.03.2014, 03:05
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 2  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 567
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
По поводу кода сказать ничего не могу, НО на мой взгляд лагает (да, именно от этого такой жесткий скроллинг) по следующим причинам:
1) Низкий фпс самой флешки, возможно он вообще выставлен 12 или 24 кадра, ставь 32.
2) Векторная графика - лажа жутка. Используй casheAsBitmap у мувиков.

Ещё могу сказать, что я в последнее время делаю так:
Пишу редактор уровней для игры. Беру готовый(обычно) тайлсет с блоками для уровня. И отрисовываю весь уровень в битмапки, так и лагов меньше и уровни красивее. Выглядит у меня всё это дело примерно так:

Сам тайлсет (либо рисую сам, либо беру готовый).


Нарисованный мною уровень, на основе тайлсета.

Старый 16.03.2014, 03:25
Wizlight вне форума Посмотреть профиль Отправить личное сообщение для Wizlight Найти все сообщения от Wizlight
  № 3  
Ответить с цитированием
Wizlight

Регистрация: Feb 2014
Сообщений: 25
Флешка 24 кадра.
Где можно почитать про тайлсет с нуля с примером? так как слышу впервые

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

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 567
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Где конкретно взять инфу не знаю, т.к. сам всё можно сказать придумал. Никакой информации сам нигде не брал, могу лишь рассказать то, что знаю сам. То как я сам вижу эту можно сказать технологию, возможно моё видение ситуации расходится с другими. Итак:

1) Тайлсет - это обычно цельная .PNG картинка на которой нарисованы все графические элементы уровня.
2) Каждый блок это квадрат обычно размером 32х32, следовательно тайлсет это просто сетка из таких квадратов.
3) Никаких сторонних фреймворков я не использовал и поэтому написал свой велосипед, который работает по следующему принципу - загружает готовый тайлсет(.PNG картинка) в битмапку. Далее мы выделяем нужную область из этой битматки и через copyPixels() копируем эту область в битмапку кисти. Затем русуем т.е. копируем данную битмапку кисти в битмап уровня.
4) Естественно, такой уровень должен сохраняться в особом формате, я назвал его .CMP(Caesar MaP, название движка + map), и записал туда данные уровня. Сам уровень хранится в виде двухмерного массива, в котором записаны числа - порядковый номер блока в тайлсете.

Ну как-то так, не уверен что сейчас это будет всё понятно, т.к. такой способ создания уровней не из легких, но я считаю его наиболее эффективным.

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

Регистрация: Mar 2007
Сообщений: 319
почему фпс 24 или 32, у тебя что вместо монитора аналоговый телевизор, у тебя монитор с частотой кадровой развёртки 60Гц, ну вот и ставь фреймрейт кратный 60: 120, 60, 30, 15

Старый 17.03.2014, 19:51
Wizlight вне форума Посмотреть профиль Отправить личное сообщение для Wizlight Найти все сообщения от Wizlight
  № 6  
Ответить с цитированием
Wizlight

Регистрация: Feb 2014
Сообщений: 25
Поменял частоту кадров на 30. Также закэшировал мувики

Измерения происходили в Adobe Scout CC, первый результат флешки без кэширования, второй результат для флешки с закешироваными неанемироваными мувиками(мувики с статичной землей)

За 25 сек флеша.

Средний FPS: 30 с 30 / 30.1 c 30

Average Frame Time: 33ms / 33ms
Active: 13 = 39% of budget 33 / 10 = 31% of budget 33
ActionScript: 1ms / 3 ms
DisplayList Rendering: 10ms / 6ms
Other: 2ms / 2ms

Used Memory 19 233KB / 21861KB
ActionScript Object: 2647KB / 4360KB
Bitmap: 3164KB / 3443 KB
SWF Files: 31 KB / 31 KB
Other: 13391 KB / 14027KB

CPU Usage:
62% (peak 148%) / 38%(peak 93%)


ex1.swf   (17.7 Кб)

ex2.swf   (17.7 Кб)


По результатам теста могу сказать, что нагрузка на процессор действительно существенно уменьшилась, при 24 кадрах эта разница еще больше...Картинка стала легче восприниматься глазами, но все равно есть толи подергивания, не плавность или хз что. Что скажите и как еще можно это исправить? Ресурсов компа по тестах вродь с запасом
Вложения
Тип файла: swf ex1.swf (17.7 Кб, 83 просмотров)
Тип файла: swf ex2.swf (17.7 Кб, 88 просмотров)

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

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 567
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Есть как вариант сделать камеру которая будет отрисовывать игровой мир в битмапку, а не просто карту двигать. Ещё вроде если двигать root вместо спрайта с уровнем, то тоже будет тормозов меньше, но я настоятельно НЕ рекомендую двигать root.

Добавлено через 2 часа 50 минут
Ну и просто ещё как вариант колоссальной оптимизации, которым ты уж точно не захочешь заниматься - это:
1) Создание своего собственно движка или взятие готового (nape, box2d), где физические тела представлены лишь "набором чисел" и не имеют изначально какого-либо графического представления.
2) Отрисовывание статического мира в битмапку, эту битмапку режем на сектора и кидаем каждый сектор в массив.
3) Показываем только те сектора которые находят в поле зрения камеры, при этом перебираем не весь массив, а формируем уже готовые индексы на основе координат камеры.

Достоинства:
[+] Можно создать большой мир с минимальными лагами.

Отстоинства:
[-] Что бы создать анимированные объекты заднего фона придется повозиться.

Старый 19.03.2014, 21:40
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Wizlight Посмотреть сообщение
но все равно есть толи подергивания, не плавность или хз что. Что скажите и как еще можно это исправить?
Я потратил очень много времени на выяснение этого вопроса. Безрезультатно. То есть мне не удалось добиться плавного скроллинга фона. Сейчас занимаюсь исключительно Stage3D, в нем таких проблем нет. У него есть другие проблемы. Но скроллит на ура.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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