![]() |
Заливка Битмапой со Scale
Здравствуйте, помогите решить проблему. Нужно замостить спрайт, отрисованный через графикс, чтобы при скейле он не терял своего внешнего вида, а то начинает один кусок повторяющейся битмапы заезжать на другой, можно ли как нибудь обойти эту проблему?
|
надо каждый раз перерисовывать графикс при изменении размеров спрайта. И лучше размеры менять не через скейл, а так же просто менять границы прямоугольника заливки
|
Цитата:
Класс у меня масштабирует за счет увеличения ширины\высоты.. Это не правильно? я сегодня первый раз прочёл эту тему и задумался, а сейчас пролез в поиск и нечаянно наткнулся на тему, в которой вскользь затронули масштаб. |
У спрайта скейл или изменение размеров?
Пропорции при этом скейле меняются или остаются как есть? Если размеры базового спрайта неизменны то можно замостить битмапой как удобно, потом сфоткать в другую битмапу и уже не с замощенным фоном скейлить, а с одной картинкой на фоне. Проблема ваша из-за нечетных координат тайлов плитки. Надо сделать так чтоб этого не было. |
Вообще я когда думал, для чего может понадобится класс масштабирования, то не задавался вопросом о "как будет", я делал, чтобы по всякому мог. Но наверное, он будет только bitmap увеличивать ширина\высота и так же с Graphics. Вот если я зарисовал десять спрайтов biginFill и потом самый главный контейнер буду увеличивать в ширину и высоту ( пропорционально ), отображение всё испортится?
Вот класс... Но он ужасен наверное :) Код AS3:
|
Akopalipsis, обсуждается совсем другая проблема: масштабирование вектора, нарисованного с graphics.beginBitmapFill().
|
Wolsh уж не знаю, намекаете ли Вы о "не правильно выбранной теме" или говорите, что biginFill и bitmap -ы , это не касается... Но вот про второе, я тоже так с утра подумал, но потом напал на тему, где Psycho Tiger, что при увеличение widt\height класса Graphics, его нужно перерисовывать. Вот тут то меня и вернуло сюда.
|
Не касается. Речь о векторе, "затайленном" битмапдатой, то есть залитым ("покрытым плиткой") пикселями, а не ровным векторным цветом или градиентом. Проблема здесь не в масштабировании битмапа как такового, а в "стыках" между плитками-тайлами, которые при масштабировании ведут себя неудобно, образуя то щели между плитками, то наезды одних на другие. Перерисовывание вектора здесь предлагается для того, чтобы оставить битмапдату "как есть", изменяя только размер вектора, но не масштабируя заливку (а увеличивая соответственно количество плиток). Что, конечно же, не всегда подходит в конкретной задаче... Перерисовывание же обычного векторного вектора :) вместо масштабирования связано больше с сохранением надежного контроля за всевозможными вычислениями, основанными на размерах, когда приходится учитывать не только width и height, но и скейл. Поскольку затраты на перерисовку сопоставимы с затратами на масштабирование, проще и надежней перерисовать вектор и иметь его в реальном масштабе. Лично я всегда перерисовываю, даже особо не задумываясь, зачем)) Кроме того, замечание Тигры могло относится к какой-то конкретной ситуации, например изменения размеров кнопки со скругленными углами (например движок в скроллбаре, реагирующий на размер контента). Scale9Grid далеко не всегда радует бескосячностью.
|
Akopalipsis - класс жесть. Основной вопрос зачем? Это даже не велосипед, непонятно именно ЗАЧЕМ. Для масштабирования никаких секретных оберток не делается, все спокойно решается нативом.
|
Wolsh Спасибо!
Добавлено через 1 минуту Цитата:
Добавлено через 6 минут Тут масштаб от указанной точки, расчет границ, не показывает пустоту, фрайм по времени, скорость масштабирования каждого направления, изменение координат с учетом всего и ещё подгон под настоящие координаты и размеры. Как это можно сделать лучше? Добавлено через 7 минут я бы рад был посмотреть на тоже самое, но правильно. |
| Часовой пояс GMT +4, время: 13:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.