Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   AS2 тормоза при полете клипа (mx.transitions.Tween) (http://www.flasher.ru/forum/showthread.php?t=149246)

lunariusis 21.01.2011 13:40

AS2 тормоза при полете клипа (mx.transitions.Tween)
 
Игра из разряда "Hidden Object Games"
Картина:
Много клипов с растром (от 100 до 200 штук), при клике на предмет который есть в списке искомых, клип улетает в "корзину", при полете рендер тормозит, проц улетает под 100%.
В состоянии покоя почти 0%, при быстром движении мышкой до 40% (курсор рисованый).
Все лишние меню убрал из видимости игрового поля, так как _visible = false не исключает клип из рендера.
Пробовал делать битмап с игрового поля и только потом пускать в полет, на много лучше, но во время съема битмапа есть миллисекундный зависон, на глаз не комфортно.
Все эти тормоза на нетбуке и на машине с процем celeron 2,6 без HT, на более мощных машинах все ок.
Вся графика растровая.
Вопрос, как еще можно оптимизировать?

P.S. Уменьшение предметов возможно, но это уже вопрос геймплея а не программирования.
Вообще можно что-то с этим поделать или нет, вот что волнует.
Использую mx.transitions.Tween, слышал что вроде тормознутый, но другие способы в лоб, не дают прироста производительности.

dark256 21.01.2011 14:39

Цитата:

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

Котяра 21.01.2011 14:51

Попробуй другие твины. Под as2 есть caurina и greensock (tweenMax итп).
А ещё лучше перепиши на as3.

dark256 21.01.2011 14:56

Кстати у mx.transitions изинги более приятные. В гринсоке оно как-то не так красиво. Угловато.
Скорость кстати имхо одинаковая, а вот устойчивость работы у гринсока - в разы лучше.

Добавлено через 1 минуту
Кстати что есть ВНУТРИ передвигающегося клипа?
Не хочу обидеть автора, но там не стоит делать 10-20 слоев с различной графикой, градиентами, прозрачностями, бленд-эффектами, листенерами, энтерфрэймами и там много чего еще, что может тормозить проц.

lunariusis 21.01.2011 16:11

Внутри клипа, два слоя - маска и png фон с альфа каналом. Не стал делать через getPixel() "пробивку" альфаканала что-бы добраться до нижележащего клипа, уже не помню почему. Питоном делаю маски все что не прозрачно в черный, прозрачность оставляю как есть, потом jsfl скриптом создаю клипы с указанными выше слоями, слой маски с png маской трейсю fl.getDocumentDOM().traceBitmap(1, 1, 'pixels', 'many corners'); и получаю клипы с реальным альфаканальным контуром а не только визуальным.

P.S. Все клипы такие а не только летящий, вся сцена собирается их XML файла, а XML и конечные *.png (ониже слои) из *.psd питоновским скриптом через GIMP.

P.S. "Миллисекундный" я утрирую конечно но на глаз видно "стопорение"

dark256 21.01.2011 17:05

выложите FLA файл. с образцом такого клипа и методами, которые вы на него навешиваете при инициализации.

rainbowrussia 21.01.2011 17:08

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

mooncar 21.01.2011 17:12

У GreenSock есть страница, на которой сравнивается производительность разных твиновых движков.
Вот она
http://www.greensock.com/tweening-speed-test/
Зайдите, оцените.
В целом, трудно судить о том, что у вас не так, не видя хотя бы результатов. По вашему описанию происходящего там не должно быть тормозов.

lunariusis 21.01.2011 19:02

Простите FLA не вылажу (55 метров). А вот у rainbowrussia мне кажется мысль отличная! Я все таки склонен к тому что тут проблема не в твининге, пробовал просто onEnterFrame и менять на прямую x и y, таж фигня. Урезаю количество объектов, становится шустрее... Мне кажется попробую все таки снимать битмап по рецепту rainbowrussia. Могу выложить SWF но она уже тоже большая около 8-ми метров.

Добавлено через 10 минут
html и swf - как есть с тормозами описаными выше, при входе в игру я снимаю битмап во время черноты экрана потом делаю прозрачным черноту потом убираю битмап, особо глазастые увидят :)
http://www.******/view_storage/537363379916


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

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