Урок 7.6 · Интерфейсы и сайты с нуля · Модуль 7. Персонаж и движение · По подписке
Цель урока: Показать шаг персонажа кадрами: собрать спрайт-лист из четырёх кадров и включать анимацию, только когда герой идёт.
Нужно знать заранее: Урок 7.5
Объяснение
Зачем это нужно:
В прошлом уроке герой поворачивался в сторону движения, но шёл как статуя: картинка одна, и она просто едет по сцене. В игре шаг показывают кадрами — несколькими рисунками одного персонажа, которые быстро сменяют друг друга. Кажется, что это «анимация, которую рисует художник», но программисту достаточно менять одно CSS-свойство.
Как это работает:
Спрайт-лист — это одна картинка, в которой кадры стоят сеткой. У нас сетка 2×2: четыре кадра, по два в строке.
Почему одним файлом, а не четырьмя: один запрос вместо четырёх, кадры гарантированно одного размера и не «прыгают», а скорость меняется одной цифрой.
Кадр показывается не тегом img, а фоном блока. Блок — это окно, через которое видно ровно один кадр:
.hero {
width: 96px;
height: 96px;
background-image: url('geroy-sheet.png');
background-size: 192px 192px;
background-repeat: no-repeat;
background-position: 0 0;
}
background-size: 192px 192px значит: вся картинка занимает 192 px, то есть по 96 px на кадр. background-position сдвигает окно: 0 0 — левый верхний кадр, -96px 0 — правый верхний, 0 -96px — левый нижний, -96px -96px — правый нижний.
Смена кадров — это анимация background-position по этим четырём точкам:
@keyframes walk {
0% { background-position: 0 0; }
25% { background-position: -96px 0; }
50% { background-position: 0 -96px; }
75% { background-position: -96px -96px; }
100% { background-position: 0 0; }
}
.hero { animation: walk 0.8s step-end infinite; }
step-end — важная часть: кадр держится до конца четверти, а потом резко меняется. Если оставить обычную плавность, картинка не переключится, а поедет — вместо шага получится скольжение.
Пауза. Герой должен шагать, только когда идёт. За это отвечает animation-play-state: paused — стоит, running — шагает:
hero.style.animationPlayState = 'running'
Компьютер без страха — Файлы, браузер, пароли, мошенники, документы и деньги в интернете простыми словами. Бесплатно и без оплаты.
Если уже случилось — Деньги ушли с карты, пропала симка, взломали аккаунт, потерялись документы — порядок действий по шагам и куда звонить.
Какой компьютер нужен — Чек-лист по уровням: для учёбы ничего покупать не нужно, для своего проекта — 16 ГБ и SSD, для работы — 32 ГБ. Плюс нейросети и устаревание железа.
Без кода: ставить задачу — Как объяснить задачу программисту и принять работу. Кода нет ни строчки.
Профессии и языки — Кто такие программисты, зачем столько языков и что делать после курса.
Потренироваться
Практикум: задачи из жизни — Та же команда урока — на работе, дома и в документах. 63 задачи с проверкой вывода и без регистрации.
Игры-тренажёры — Найти ошибку в чужом коде, прочитать, что делает программа, и увидеть, что случится, если нажать клавишу.
Симулятор: от задания до сдачи — Пройти путь целиком: папка, терминал, файл, сохранение, запуск, проверка по критерию приёмки. Два сценария и две системы.
Мастерская экрана — Проверить цвета и раскладку страницы: контраст, шаблоны, конструктор.
Колесо фортуны — Одна прокрутка в день: скидка на подписку или дни доступа.
Словари и юмор
Словарь программиста — Слова из уроков и кода: парсинг, функция, хеш, компиляция.
Словарь руководителя — Слова из работы простыми словами: скоуп, дедлайн, MVP, бэклог.
Корявые задачи — Юмор: как ставят задачи и что из этого получается. С моралью.
Сайт, оплата и помощь
Родителям — Возраст, время на уроки, безопасность в сообществе, деньги и результат — что важно знать до оплаты.