Найти в Дзене
PapaCoder

Scratch 4. Кнопки, события, сохранение

Сегодня добавим интерактивности нашему котику – он будет реагировать на кнопки мыши и клавиши клавиатуры. Но сначала я научу тебя сохранять наши программы. Scratch позволяет нам сохранять программы или проекты, как говорят настоящие программисты, у себя на сервере или у тебя на компьютере. Если сохранять на сервере, то ты сможешь открыть свою программу с любого компьютера, например, в гостях у друга и показать как здорово ты умеешь программировать. Для сохранения на сервере тебе потребуется один раз зарегистрироваться в Scratch и для этого тебе понадобится помощь родителей. В правом верхнем углу Scratch есть две кнопки – “Присоединяйся” и “Войти”. Жми присоединяйся и зови родителей, чтобы они придумали тебе имя пользователя и пароль. Готово? Запиши свои имя пользователя и пароль, они тебе понадобятся для входа позже. А сейчас правый верхний угол у тебя должен выглядеть примерно так: PapaCoder101 – это мое имя пользователя, у тебя будет свое. Все свои проекты ты сможешь увидеть если наж
Оглавление

Сегодня добавим интерактивности нашему котику – он будет реагировать на кнопки мыши и клавиши клавиатуры.

Но сначала я научу тебя сохранять наши программы. Scratch позволяет нам сохранять программы или проекты, как говорят настоящие программисты, у себя на сервере или у тебя на компьютере. Если сохранять на сервере, то ты сможешь открыть свою программу с любого компьютера, например, в гостях у друга и показать как здорово ты умеешь программировать.

Для сохранения на сервере тебе потребуется один раз зарегистрироваться в Scratch и для этого тебе понадобится помощь родителей.

В правом верхнем углу Scratch есть две кнопки – “Присоединяйся” и “Войти”. Жми присоединяйся и зови родителей, чтобы они придумали тебе имя пользователя и пароль.

Регистрация
Регистрация

Готово? Запиши свои имя пользователя и пароль, они тебе понадобятся для входа позже. А сейчас правый верхний угол у тебя должен выглядеть примерно так:

“Папка” и имя пользователя
“Папка” и имя пользователя

PapaCoder101 – это мое имя пользователя, у тебя будет свое. Все свои проекты ты сможешь увидеть если нажмешь на кнопку “папка” слева от твоего имени пользователя.

У проекта есть имя, сейчас оно “Untitled” – что по-английски означает “безымянный”. Напиши вместо этого, например, “проект-1” и сохрани его.

Сохранение проекта
Сохранение проекта

С сохранением разобрались, переходим к теме урока.

Клавиши и кнопки

Работа с клавиатурой находится в разделе “события” – желтый круг. Мы уже использовали событие “зеленый флаг”. А сейчас я покажу два блока для мыши и клавиатуры.

Блоки для клавиатуры
Блоки для клавиатуры

Блок “Когда клавиша нажата” срабатывает, когда нажимается соответствующая клавиша клавиатуры. Мы можем прицепить к этому блоку любую последовательность блоков и персонаж будет их выполнять при нажатии этой кнопки. По программе ниже котик подпрыгнет и опустится обратно если ты нажмешь на “пробел” – это самая большая клавиша на клавиатуре.

Прыжок по пробелу
Прыжок по пробелу

Блок “когда спрайт нажат”, срабатывает если по котику нажать мышкой или пальцем (если у тебя планшет).

Общение

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

Например, мы что-то говорим друзьям или родителям – то есть передаем какую-то информацию или сообщение. Тот же механизм есть и в Scratch. Если мы хотим что-то сказать другому объекту – мы должны передать ему сообщение. А чтобы объект понял, что мы ему пытаемся сказать – у каждого сообщения есть имя. Имя сообщения и является информацией, которую мы передаем.

Для работы с сообщениями Scratch предлагает три блока – один для получения сообщений: “когда я получу” и два для отправки “передать” и “передать и ждать до конца”.

Блоки для сообщений
Блоки для сообщений
  • Блок “когда я получу” запускает последовательность блоков при получении сообщения.
  • Блок “передать” передает сообщение и продолжает выполнение программы.
  • “Передать и ждать до конца” отправляет сообщение и встает на паузу до тех пор, пока не завершатся все блоки “когда я получу сообщение” для этого сообщения у всех персонажей. Это нужно для того, чтобы персонажи двигались слаженно, и отправитель сообщений не забросал бы получателя горой писем.

В Scratch есть и другие события, на которые может среагировать персонаж. Мы уже знаем про “зеленый флаг”, клавиатуру и сообщения. Есть еще блоки “когда фон сменился” – персонаж реагирует на смену фоновой картинки и блок работы с таймером – отложенный запуск программы.

Программирование, основанное на реакции на события называется “событийное программирование” или “реактивное программирование” и очень сейчас распространено.

Задание

Задание сегодня будет очень сложное, но я уверен, что ты справишься. Сделай так, чтобы:

  • пока нажата стрелка “вверх”, котик двигался вверх
  • если нажата стрелка “вниз”, котик двигался вниз
  • нажата стрелка “вправо”, котик двигался вправо
  • и, наконец, пока нажата стрелка “влево”, котик двигался влево.

При старте программы, котик должен находиться в середине экрана.

Без подсказок не обойтись. Представь, что поле, по которому перемещается персонаж – это шахматная доска, только расположение клетки задается не буквой и цифрой – е2, а номерами по горизонтали и по вертикали: e2 – будет 5 и 2. Номер или координата по горизонтали обозначается буквой х (икс), а по вертикали – у (игрек). Значит у клетки е2 координаты x=5 и y=2.

Значит при перемещении котика по вертикали (вверх и вниз) тебе нужно изменять координату y, а при перемещении по горизонтали (вправо или влево) – координату x. Середина экрана – это точка с координатами x=0 и y=0. Тебе пригодятся эти блоки:

Блоки движения
Блоки движения

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

Прошлые уроки:

Решение

Решение доступно ниже и на платформе Scratch

Решение урока 4
Решение урока 4