← Все вопросы

Как сделать таймер в Scratch?

Задан 21 месяц назад1.2к просмотров2 ответа
10

Хочу, чтобы в игре было ограничение по времени — 30 секунд и стоп. Как сделать таймер обратного отсчёта в скретче?

2 ответа

14
✓ Принятый ответ — помог автору

Таймер обратного отсчёта делается через переменную — назовём её «Время». ⏱️ Будем каждую секунду отнимать единичку, пока не дойдём до нуля.

Создай переменную «Время» в оранжевой полке «Переменные». Потом собери скрипт (можно у сцены):

когда нажат зелёный флажок
задать «Время» = 30
повторить до <Время = 0>
    ждать 1 секунд
    изменить «Время» на -1
сказать «Время вышло!» 2 секунд
стоп «все»

Как это работает:

  1. задать Время = 30 — ставим 30 секунд на старте.
  2. повторить до Время = 0 — повторяем, пока не дойдём до нуля.
  3. Внутри: ждём 1 секунду, потом отнимаем 1 (изменить на -1).
  4. Когда время кончилось — пишем сообщение и блок «стоп все» останавливает игру. 🛑

Табличка «Время» на сцене будет показывать, сколько осталось.

Подсказка: блок «повторить до …» (полка «Управление») работает наоборот от «если» — он крутится, ПОКА условие не станет верным.

Частая ошибка: забыть задать Время = 30 в начале. Тогда отсчёт начнётся со старого числа или вообще не пойдёт. Всегда ставь начальное значение по зелёному флажку. ✅

Хочешь секундомер «вверх» (сколько прошло)? Просто меняй на +1 вместо -1 и убери условие остановки. ⏰

5

У Scratch есть и встроенный таймер — блок «таймер» в полке «Сенсоры». Он сам считает секунды с момента старта, а блок «сбросить таймер» обнуляет его.

Например: «если таймер больше 30, то стоп все». Это проще, но он считает только вверх. Для обратного отсчёта с показом «осталось N секунд» удобнее своя переменная, как выше. 🙂

Ваш ответ

Войдите, чтобы ответить на вопрос.