Переменная хранит результат, событие запускает действие
Переменная подходит для хранения текущего счёта. Событие нажатия на спрайт запускает нужную последовательность блоков. Это разные роли: число сообщает состояние игры, а событие определяет момент выполнения действий. Для нашего примера достаточно одной переменной с понятным названием Счёт. При создании переменной важно выбрать область её использования. Если значение должно быть общим для нескольких персонажей, выбирают вариант для всех спрайтов. В учебной игре используется один персонаж, но общее значение позволит позднее показывать результат и в других частях проекта. Пока не нужно добавлять дополнительные счётчики. Чем меньше лишних элементов, тем проще проследить, кто и когда меняет число.
Опишите начало и правило начисления
Под событием запуска по зелёному флагу поместите установку значения Счёт в ноль. Установка заменяет старое значение, тогда как изменение на один прибавляет единицу к уже существующему. Если перепутать эти действия, каждое нажатие может снова давать один вместо последовательного роста результата. В обработчике нажатия на спрайт сначала проверяется условие: Счёт меньше пяти. Только внутри этого условия значение увеличивается на один. Последовательность получится такой: ноль, один, два, три, четыре, пять. Следующее нажатие уже не удовлетворяет условию, поэтому число остаётся прежним. В этом примере окончание раунда означает прекращение начисления, а не закрытие проекта или исчезновение персонажа.
Проверьте границы, а не только первый клик
Один удачный щелчок не подтверждает правильность всей игры. Нужно посмотреть, что происходит перед достижением цели, на пятом очке и после него. Затем снова нажать зелёный флаг и убедиться, что начинается новый раунд с нуля. Такие проверки показывают логику состояния лучше, чем случайное многократное нажатие без ожидаемого результата. Сохраняйте правило начисления в одном понятном месте. Если рядом появится второй обработчик, который тоже прибавляет очко за то же действие, результат изменится. Для усложнения игры сначала сформулируйте новое правило словами: например, разные персонажи дают разные очки. Только после этого меняйте логику. Условие остановки тогда тоже нужно пересмотреть, поскольку прибавление большего числа может перескочить выбранную цель.
Попробуйте на практике
Соберите простой собственный счётчик в Scratch 3. Для упражнения не нужны чужие проекты, учётная запись с личными данными или публичная публикация.
- Добавьте один спрайт и переменную Счёт. Сделайте значение видимым, чтобы наблюдать изменения во время проверки.
- Создайте обработчик зелёного флага, устанавливающий Счёт в ноль. Запустите его и проверьте начальное значение.
- Создайте обработчик нажатия на спрайт. Внутри условия Счёт меньше пяти добавьте изменение Счёта на один.
- Проверьте семь последовательных нажатий, затем новый запуск и ещё два нажатия. Сравните значения с ожидаемыми: сначала пять, после перезапуска ноль, затем два.
Как проверить результат. Логика работает, если лишние нажатия после пятого очка не увеличивают счёт, а каждый новый раунд начинает отсчёт заново.
Частые вопросы
Почему нельзя каждый раз устанавливать значение в один?
Установка заменяет текущее число. Для накопления очков нужно прибавление. Эти действия похожи по виду блоков, но выражают разные правила.
Можно ли сразу добавить таймер и несколько уровней?
Можно, но сначала полезно проверить простой раунд. Иначе будет трудно понять, какая часть вызывает ошибку: начисление, время или переход между уровнями. Новые правила стоит добавлять и проверять по одному.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.