Главная
 
npofopr.ucoz.ruСуббота, 2025-07-12, 05:14:57



Приветствую Вас Гость | RSS
Главная
Меню сайта

Форма входа

Категории раздела
css [4]
JS [1]

Главная » Статьи » html » JS

Сверхплавное передвижение объектов
Мы сделали небольшой пример, в котором можно посмотреть, как выглядит плавный сдвиг с субпиксельной точностью и антиалиасингом, и как выглядит тот же сдвиг без этого эффекта.

Как это сделано?

Это сделано при помощи спрайтов, а также «умного» уменьшения исходного изображения. Теперь, по порядку.

Во-первых, мы взяли большое изображение машинки:



Затем, подчистили его от ненужного фона:



Дальше мы расположили 4 одинаковых машинки с шагом в 600 точек в одном большом файле (2400х260 точек).

После этого, мы сдвинули каждую копию машинки на одну точку, относительно предыдущего кадра. То есть, вторую машинку — на точку, третью — на две, а четвёртую — на все три. Теперь на нашем спрайте есть машинка, которая преодолевает расстояние в 4 точки за 4 кадра.

Осталось последнее действие, заставить машинку проезжать за 4 кадра одну точку и делать сделать это максимально плавно. Для этого мы уменьшаем картинку в 4 раза, не забыв включить опцию антиалиасинга при уменьшении в вашем редакторе, и получаем картинку такого вида (которую, к слову, мы и используем в нашем примере):



Ниже — картинка, на которой в увеличении видно, как машинка проезжает сквозь одну точку:



Дальше дело за малым: как использовать этот спрайт? Самым простым способом: во время движения картинки, определять дробную часть и использовать её для выбора нужного кадра. Поскольку вебовские средства не позволяют использовать неточное позиционирование, мы распологаем спрайт ровно по нужной нам координате, например, при позиции X=15,25 мы размещаем картинку на 15 точке по оси X, а дробную часть переводим в номер спрайта, в нашем случае это будет второй спрайт.

В принципе, по аналогичной схеме можно сделать движение и по двум осям, а также использовать этот метод для плавной анимации фона, например для css анимации фонов у кастомных кнопок или других схожих js эффектов.


Источник: http://habrahabr.ru/blogs/javascript/67179/
Категория: JS | Добавил: npofopr (2009-08-17)
Просмотров: 968 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Поиск


Copyright MyCorp © 2025
Сделать бесплатный сайт с uCoz