Занятие №27 "Повторитель контура"
А можем ли мы заставить спрайт следовать по определенному маршруту на Сцене самостоятельно?
Да. И сейчас мы напишем программу, которая будет это делать. Если вы внимательно посмотрите на спрайт на рисунке, то заметите, что мы нарисовали нос и два уха кота разными цветами. Вы также увидите увеличенное изображение головы кота.
Образец маршрута, по которому следует спрайт
УПРАЖНЕНИЕ 27.1

Откройте программу и запустите ее, чтобы посмотреть, как она работает. Поэкспериментируйте с заданными значениями, сделайте так, чтобы спрайт прошел маршрут максимально быстро. Один из пользователей написал нам, что прошел маршрут за 11 секунд. А вы сможете побить этот рекорд? Создайте другие маршруты и посмотрите, будет ли этот алгоритм по-прежнему работать.


План в том, чтобы использовать нос и уши кота как сенсоры цвета для определения черной линии под ними. Алгоритм для отслеживания линии использует следующие эвристические правила (основанные на логических заключениях и знаниях, которые получены методом проб и ошибок).

  • Если нос кота (розовый цвет) касается линии, идти вперед.
  • Если левое ухо кота (желтый цвет) касается линии, повернуть
    против часовой стрелки и идти вперед на сниженной скорости.
  • Если правое ухо кота (зеленого цвета) касается линии, повернуть по часовой стрелке и идти вперед на сниженной скорости.
Естественно, точная скорость (движения) и углы поворотов могут быть разными для разных маршрутов. Их можно вычислить экспериментальным путем.

Скрипт использует новый блок: цвет касается (из раздела Сенсоры). Он проверяет, соприкасается ли цвет спрайта (указан в первом цветовом квадратике) с другим цветом (во втором цветовом квадратике). Если цвет на спрайте касается другого цвета, блок возвращает значение истина; если нет — ложь. Цвет в цветовом квадратике можно выбрать, кликнув по любой точке в проекте Scratch, где есть нужный вам цвет.

Scratch - Учись играя!
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website