Создание игры с управлением персонажем
Scratch для юных программистов
Как работать с новой темой
- Внимательно прочитай теорию.
- Разбери примеры.
- Реши практические задачи.
Создание игры с управлением персонажем
Сегодня мы превратимся в настоящих игровых инженеров и соберем с нуля профессиональный движок управления для твоего персонажа. Твой герой научится не просто уныло ходить по экрану, а плавно разгоняться, прыгать, слушаться кнопок клавиатуры и даже замирать, когда игра окончена.
Для этого проекта нам понадобятся три участника:
- Главный герой (например,
Scratch Catили космонавтPico). - Препятствие, которое нужно перепрыгнуть (например, катящийся ежик
Hedgehogили шипы). - Финишный артефакт (например, парящий в воздухе кристалл
Crystal).
Этап 1. Создаем плавные «космические» шаги (Влево — Вправо)
Если запрограммировать ходьбу через обычный блок «когда клавиша нажата», персонаж будет двигаться рывками, как старый заржавевший робот. Мы сделаем управление плавным, как на игровой приставке. Компьютер будет каждую миллисекунду проверять, давишь ли ты на кнопку.
Выбери спрайт Главного героя и собери первый, самый важный скрипт:
scratch
когда зеленый флажок нажат
установить стиль вращения [влево-вправо v]
перейти в x: (-180) y: (-100) // отправляем героя на старт в левый угол
повторять всегда
если <клавиша [стрелка вправо v] нажата?> то
повернуть в направлении (90) // смотрим направо
идти (10) шагов
следующий костюм // лапки персонажа начинают весело бежать!
конец
если <клавиша [стрелка влево v] нажата?> то
повернуть в направлении (-90) // разворачиваемся налево
идти (10) шагов
следующий костюм
конец
ждать (0.02) секунд // крошечная пауза, чтобы анимация не мелькала слишком быстро
конец
Как это работает: Блок
повторять всегда превращается в неутомимого часового. Он без остановки спрашивает у клавиатуры: «Так, хозяин нажал стрелку вправо? А левую?». Как только ты зажимаешь кнопку, герой мгновенно разворачивается в нужную сторону, делает 10 шагов и меняет костюм. Движение становится идеально послушным и непрерывным!Этап 2. Секретный трюк: Настоящий прыжок с гравитацией
Просто переместить героя вверх — это не прыжок, это полет на лифте. Настоящий прыжок в играх устроен хитрее: персонаж сначала резко взлетает вверх, затем замедляется, на долю секунды застывает в воздухе и плавно падает обратно на землю под действием притяжения (гравитации).
Для этого нам понадобится личный карман памяти нашего героя — переменная.
Нажми «Создать переменную», назови ее
Нажми «Создать переменную», назови ее
Скорость Y и обязательно выбери переключатель «Только для этого спрайта».Рядом со скриптом ходьбы (не скрепляя их!) собери второй независимый скрипт прыжка:
scratch
когда зеленый флажок нажат
повторять всегда
изменить y на (Скорость Y) // компьютер постоянно двигает героя по вертикали
если <(положение y) < (-100)> то // проверка: если мы провалились ниже пола...
установить y в (-100) // ...то жестко возвращаем героя на землю
задать [Скорость Y v] значение (0) // останавливаем падение
конец
если <<клавиша [пробел v] нажата?> и <(положение y) = (-100)>> то
задать [Скорость Y v] значение (15) // мощный толчок вверх!
конец
если <(положение y) > (-100)> то
изменить [Скорость Y v] на (-1) // гравитация! Тянем героя вниз, пока он в воздухе
конец
конец
Разбираем магию прыжка по шагам:
- Когда ты нажимаешь Пробел, в коробку
Скорость Yмгновенно запрыгивает число15. Первый блок тут же поднимает героя вверх на 15 пикселей. - Но как только герой оторвался от земли (
положение y > -100), включается злая гравитация. Она каждую долю секунды вычитает из скорости единицу:15,14,13... Герой взлетает всё медленнее. - В наивысшей точке скорость становится равной
0. Герой на миг замирает. - Скорость уходит в минус:
-1,-2,-3... Персонаж начинает лететь вниз, ускоряясь с каждым кадром, прямо как в реальной жизни! - Как только он коснулся пола (
положение y < -100), компьютер выключает падение и прилепляет его к земле. Двойной прыжок в воздухе сделать не получится, ведь кнопка сработает только тогда, когда мы четко стоим на полу (положение y = -100).
Этап 3. Катящаяся ловушка и финиш (Оживляем препятствие и кристалл)
Теперь добавим в игру опасность и цель, чтобы управлять персонажем было интересно.
Перейди в спрайт опасности (например, Ежика) и заставь его бесконечно катиться навстречу нашему герою:
scratch
когда зеленый флажок нажат
повторять всегда
перейти в x: (240) y: (-100) // прячем ежика на правом краю экрана
повторить (48) раз
изменить x на (-10) // ежик быстро бежит влево
повернуть в направлении ((направление) + (15)) // крутим ежика для эффекта качения
ждать (0.02) секунд
конец
конец
Перейди в спрайт Кристалла. Пусть он красиво парит в воздухе в правом верхнем углу и ждет, когда наш герой до него допрыгнет:
scratch
когда зеленый флажок нажат
перейти в x: (180) y: (30) // вешаем кристалл на высоту
убрать графические эффекты
повторять всегда
изменить [цвет v] эффект на (5) // кристалл таинственно переливается всеми цветами
ждать (0.05) секунд
конец
Этап 4. Главный судья: Проверка победы и проигрыша
Возвращаемся в код Главного героя. Нам нужно научить его реагировать на столкновение с ежиком и на взятие кристалла. Собери третий скрипт:
scratch
когда зеленый флажок нажат
повторять всегда
если <касается [Hedgehog v]?> то // если наступили на ежика...
изменить [рыбий глаз v] эффект на (100) // лицо героя смешно раздувается от боли!
сказать [Ой! Нас поймали!] на (2) секунд
стоп [все v] // игра полностью замирает, это проигрыш
конец
если <касается [Crystal v]?> то // если допрыгнули до кристалла...
играть звук [Win v] // победный фанфар!
повторить (10) раз
изменить [размер v] на (10) // герой увеличивается от радости
повернуть в направлении ((направление) + (36)) // победное сальто!
конец
сказать [УРА! ПОБЕДА!] на (3) секунд
стоп [все v] // счастливый финал игры
конец
конец
🎮 Время запускать тест-драйв!
- Нажми на 🟢 зеленый флажок. Наш герой послушно встанет на стартовую позицию, а ежик покатится справа налево.
- Попробуй побегать стрелочками — персонаж должен плавно передвигаться и перебирать лапками.
- Подбеги к ежику и нажми Пробел. Если ты рассчитал время правильно, герой совершит мягкий, красивый прыжок и перелетит опасность!
- Доберись до правой стороны экрана и запрыгни на кристалл. Если всё получилось, герой закружится в победном танце, и игра остановится. Твой первый настоящий платформер готов!