Как сделать таймер в Scratch?
Хочу, чтобы в игре было ограничение по времени — 30 секунд и стоп. Как сделать таймер обратного отсчёта в скретче?
2 ответа
Таймер обратного отсчёта делается через переменную — назовём её «Время». ⏱️ Будем каждую секунду отнимать единичку, пока не дойдём до нуля.
Создай переменную «Время» в оранжевой полке «Переменные». Потом собери скрипт (можно у сцены):
когда нажат зелёный флажок
задать «Время» = 30
повторить до <Время = 0>
ждать 1 секунд
изменить «Время» на -1
сказать «Время вышло!» 2 секунд
стоп «все»
Как это работает:
- задать Время = 30 — ставим 30 секунд на старте.
- повторить до Время = 0 — повторяем, пока не дойдём до нуля.
- Внутри: ждём 1 секунду, потом отнимаем 1 (изменить на -1).
- Когда время кончилось — пишем сообщение и блок «стоп все» останавливает игру. 🛑
Табличка «Время» на сцене будет показывать, сколько осталось.
Подсказка: блок «повторить до …» (полка «Управление») работает наоборот от «если» — он крутится, ПОКА условие не станет верным.
Частая ошибка: забыть задать Время = 30 в начале. Тогда отсчёт начнётся со старого числа или вообще не пойдёт. Всегда ставь начальное значение по зелёному флажку. ✅
Хочешь секундомер «вверх» (сколько прошло)? Просто меняй на +1 вместо -1 и убери условие остановки. ⏰
У Scratch есть и встроенный таймер — блок «таймер» в полке «Сенсоры». Он сам считает секунды с момента старта, а блок «сбросить таймер» обнуляет его.
Например: «если таймер больше 30, то стоп все». Это проще, но он считает только вверх. Для обратного отсчёта с показом «осталось N секунд» удобнее своя переменная, как выше. 🙂