Практическая работа «Создаем точные часы» Проект: Создаем часы, показывающие текущее время, а так же при нажатии на героя (кот, но может быть и другой), герой говорит сегодняшнюю дату (число, месяц, год) и текущее время. Особенности проекта: Нам понадобится фон с циферблатом без стрелок, его ты можешь найти в папке в уроке или нарисовать свой. Нам понадобится герой, который будет называть текущее время и дату, а также стрелки – секундная, минутная и часовая. Стрелки можно взять из библиотеки или нарисовать самостоятельно. Лучше рисовать в векторном редакторе. В нем проще задавать толщину линий и длину, для того, чтобы копировать стрелки и менять толщину и длину. Внимание: положение стрелки должно быть горизонтально и смотреть вправо! Команды, которые нам понадобятся для реализации проекта: С помощью этой команды мы будем, указывать текущее положение стрелок часов. С помощью этой команды мы будем помещать стрелки в центр часов. С помощью этой команды мы будем поворачивать стрелки в положение текущего времени. Позволит выполнить умножение двух значений. Позволит выполнить объединение текста, а также значение переменных, чтобы потом кот назвал время и дату Немного математики: Секундная стрелка совершает за 1 минуту полный поворот – 360о. Стрелка секундная поворачивается на 3600 ∶ 60 = 60 за 1 секунду (делим на 60 так, как в 1 минута = 60 секунд). Т.е. за 15 секунд она повернется на 60 ∙ 15 = 900 , а за 30 секунд на 60 ∙ 15 = 1800 . Аналогично: Стрелка минутная поворачивается на 60 за 1 минуту (3600 : 60 = 60 ). Так как за 1 поворот часовая стрелка проходит 12 значений (от 1 до 12), то за 1 час она поворачивается на 3600 : 12 = 300 . Даже если текущее время будет, например, 18 часов, то она повернется на 300 ∙ 18 = 5400 , а это полный поворот 3600 и еще 1800 , т.к. 3600 + 1800 = 5400 . Т.е. стрелка опустится вниз вертикально и покажет 6 часов. Это нам необходимо знать, чтобы правильно запрограммировать движение стрелок. Ход работы: 1. Добавляем фон – циферблат. 2. Добавляем спрайт секундной стрелки. Рисуем ее самостоятельно или берем из библиотеки. Если возьмем из библиотеки стрелку, то ее надо сделать длиннее и менее широкую. Внимание: положение стрелки должно быть горизонтально и смотреть вправо! Самое главное установить центр костюма стрелки в край стрелки, который будет у нас стоять на месте. Это можно изменить с помощью кнопки в верхней части векторного редактора: 3. Напишем скрипт для секундной стрелки. Когда щелкнут по флажку, стрелка должна перейти в точку центра циферблата, у меня это точка (0, 0). Затем в цикле всегда стрелка должна повернуться в направлении текущего значения секундной стрелки умноженной на 6, чтобы время было верным. Чтобы умножить текущее значение секунды на 6 используем оператор умножения из раздела Операторы. Общий секундной стрелки скрипт: 4. Чтобы сделать минутную стрелку копируем секундную. Изменяем ее костюм: делаем ее короче и шире. Скрипт тоже будет такой же как у секундной, единственное отличие, что мы используем текущее значение минут: 5. Чтобы сделать часовую стрелку копируем секундную. Изменяем ее костюм: делаем ее еще короче и шире. Скрипт тоже будет такой же как у минутной и секундной, единственное отличие, что за 1 час стрелка должна сдвигаться на значение часов умноженной на 30 градусов. Поэтому надо будет поменять команду в цикле всегда: 6. Теперь осталось написать команды, которые позволять, когда нажмешь на кота (героя) увидеть текущее время и дату. Для этого мы будем использовать команду говорить в течение 2 секунд. Чтобы мы увидели слова героя и значение текущей даты необходимо использовать команду слить ( ). Нам надо, чтобы кот мы щелкаем на героя, он говорил, например: «Сегодня 2. 2. 2019». Разберем эту Сегодня 2 . 2 . 2019 фразу на части: сначала идет обычный текст: «Сегодня», затем нам надо вставить текущее текст текст текст переменные значение даты, потом идет текст с точкой «.», затем текущее значение месяца, потом идет текст «.», затем текущее значение года. Схема составления фразы: Должна получиться такая фраза: Аналогично делаем фразу про время: «Сейчас 13 : 25» Жирным выделены переменные: Общий скрипт героя: 7. Дополнительно можно добавить: тиканье часов – играть звук до конца. Звук тикающих часов можно взять в Интернете. Я еще нарисовала круг как спрайт и поместила его в центр, чтобы было красивее, и сделала надпись на фоне, чтобы любой человек знал, что надо нажать на героя, чтобы узнать время и дату. Так как Скретч2 не позволяет писать русскими буквами, то можно написать фразу на самом фоне в графическом редакторе, который у тебя есть на компьютере (например, Paint) и потом опять загрузить фон заново. Или на сайте https://scratch.mit.edu/ найти проекты, которые позволяют, переводит текст на русский. В следующем задании добавим будильник. Т.е. пользователь вводит время будильника, потом как время подходит будильник срабатывает и звучит музыка. Можно еще дополнительно сделать часы с кукушкой, например, когда ровно какое-то количество часов она кукует определенное число раз. Но для этого надо написать достаточно большой код. Сначала бы я тебе посоветовала попробовать на неточных часах, на которых можно задавать время или придется ждать возможно достаточно долго чтобы проверить как это будет работать на точных часах.