Uploaded by musy_k

Практическая1 точные часы

advertisement
Практическая работа «Создаем точные часы»
Проект: Создаем часы, показывающие текущее
время, а так же при нажатии на героя (кот, но может
быть и другой), герой говорит сегодняшнюю дату
(число, месяц, год) и текущее время.
Особенности проекта: Нам понадобится фон с
циферблатом без стрелок, его ты можешь найти в
папке в уроке или нарисовать свой. Нам понадобится
герой, который будет называть текущее время и дату,
а также стрелки – секундная, минутная и часовая.
Стрелки можно взять из библиотеки или нарисовать
самостоятельно. Лучше рисовать в векторном
редакторе. В нем проще задавать толщину линий и
длину, для того, чтобы копировать стрелки и менять
толщину и длину.
Внимание: положение стрелки должно быть горизонтально и смотреть вправо!
Команды, которые нам понадобятся для реализации проекта:
С помощью этой команды мы будем, указывать текущее положение
стрелок часов.
С помощью этой команды мы будем помещать стрелки в центр
часов.
С помощью этой команды мы будем
поворачивать стрелки в положение текущего времени.
Позволит выполнить
умножение двух значений.
Позволит выполнить объединение текста, а также значение
переменных, чтобы потом кот назвал время и дату
Немного математики:
Секундная стрелка совершает за 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/ найти
проекты, которые позволяют, переводит текст на русский.
В следующем задании добавим будильник. Т.е. пользователь вводит время будильника, потом
как время подходит будильник срабатывает и звучит музыка.
Можно еще дополнительно сделать часы с кукушкой, например, когда ровно какое-то
количество часов она кукует определенное число раз. Но для этого надо написать достаточно
большой код. Сначала бы я тебе посоветовала попробовать на неточных часах, на которых можно
задавать время или придется ждать возможно достаточно долго чтобы проверить как это будет
работать на точных часах.
Download