Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как сделать карту правильно? (http://www.flasher.ru/forum/showthread.php?t=124377)

enepx 28.04.2009 13:16

Как сделать карту правильно?
 
Привет всем,
у нас на проекте встала задача, нужно написать карту как в играх. Карта - это картинка, которая имеет открытые и закрытых зоны. Открываться она должна движением по ней фокуса (в данном случае экраном). Граница между открытой и закрытой частями не должна быть резкой, но и не должна быть идеально размытой формы. Должно быть похоже на дым, туман или подобное.
Нужно сделать ее не тормозной, а то мы сделали фильтром Blur, а она тормозит ((
Что можете посоветовать? Может быть заюзать PNG какие-нибудь?
Спасибо.

divinus 28.04.2009 13:20

можно отрисовать туман в битмапу и накладывать сверху...

Dimas_Art 28.04.2009 13:25

Как ни странно, но так и делаем
Карта размера порядка 5000 на 4000, делаем сетку из битмапов по 200 на 200 и из каждого вырезаем несколько кругов (порядка 10-15) разного диаметра, разной альфы и градиента. Но если его вырезать без сглаживания, появляются артефакты, такие как полоски от квадрата вырезаемой фигуры, в которой прорисована градиентная основа. Поэтому накладываем эффект Blur на каждый такой круг, чтобы сгладить эти мелочи. Но как известно при таком подходе очень страдает проц :(

serenkiy 28.04.2009 14:29

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

Dimas_Art 28.04.2009 14:51

не совсем понял идею :( Можешь немного поподробнее...

Vektor 28.04.2009 15:37

А как, насчет маски, что-то вроде несколько слоёв, с разной прозрачностью, в зависимости от удаления от центра, туман убирается, после прохождения.
Это в теории, на практике нужно смотреть, что нужно конкретно.

serenkiy 28.04.2009 16:18

Идея следующая -
Создаем "холст", размеры которого равны размерам карты. Заливаем его цветом тумана. Разбиваем его на секторы (к примеру, как у Вас 200х200). Далее, работаем с секторами - персонаж заходит на сектор, тут вызывается функция, которая его(сектор) отрисовывает. Принцип действия функции следующий:
1. Считываем координаты и размеры сектора, в который вошел персонаж. (Класс Rectangle думаю поможет)
2. Копируем графику этого сектора с карты и отрисовываем на "холсте".

alatar 28.04.2009 21:00

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

Dimas_Art 28.04.2009 23:25

Немного бажная, но все-таки вытащенная из проекта карта с туманом
Вот линка - http://flashformer.com/dev/map_test/map_test.html
Навести на него фокус и управлять кнопками вверх, вниз, вправо и влево
Вот что-то типа того надо воспроизвести, но не с таким загрузом проца


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

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