Как сделать физику в скретч

Обновлено: 08.07.2024

Общение с компьютером может развивать творческие способности и помогать реализовывать ребенку свои фантазии, а также со временем и свои цели в реальной жизни.

И наоборот, может приучать к бессмысленным компьютерным играм. Компьютер может замыкать психические ресурсы человека на себе, погружая его в искусственный "виртуальный" мир.

Это мешает ребенку развиваться воспринимать реальный мир, тормозит интеллектуальное развитие и калечит психику.

Сложные естественнонаучные понятия можно с помощью компьютера сделать более доступными. Их можно наблюдать, "пощупать", поиграть, и тем самым освоить.

Тогда компьютер будет не заслонять собой жизнь, а наоборот сможет раскрывать реальный мир, помогать учиться жить в реальном мире, действовать и побеждать.

Мы исходим из предположения, что увеличению творческого потенциала способствует игровая мотивация и возможность быстрого достижения видимого результата.

Задача курса

Задачи, которые мы пытаемся решить, следующие:

Во-первых, это освоение школьниками среды скретч, как полезного инструмента детского творчества. Скретч дает школьнику возможность самовыражения, а также знакомит с основными принципами объектного программирования, что расширяет кругозор и может оказаться хорошим стартом для будущих специалистов по информационным технологиям. Мы не делаем акцент на изучении языка Скретч, изучение происходит между делом, как обучение иностранному языку "с погружением".

Во-вторых, и это красной нитью проходит через весь курс, мы показываем, что компьютер это не только игрушки, кино, "в контакте". Это инструмент моделирования и изучения реального мира. Изучения математики, физики.

Почему Scratch

Среда Scratch (Скретч), разработанная в MIT (Массачусетский Технологический Институт) является хорошим примером среды для развития творческого мышления самых маленьких пользователей.

Среда программирования – в стиле лего-кубиков, объектно-ориентированный подход , нулевой порог входа в систему, прозрачная интеграция мультимедиа и даже внешних сенсоров. Все это делает скретч привлекательной платформой для обучения детей.

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

Собранные вместе персонажи на сцене – составляют некоторую интерактивную композицию, которая в Скретч называется проектом.

Среда Скретч локализована – интерфейс переведен на русский язык.

В стандартный набор Скретч, который можно скачать в интернете, входит набор примеров проектов, которые показывают возможности Скретч.

Примеры – на английском языке, частично переведены автором этой книги.

Проекты-примеры разделены на 9 групп. Состав этих групп дает представление о возможностях Скретч.

  • Сценки (Animations) – это просто сценки из жизни (детская площадка, батут, аквариум)
  • Игры – простые игры для детей
  • Поздравления – интерактивные открытки по разным поводам
  • Поделки (interactive art) – интересный раздел – простые игры на развитие воображения (одень обезьяну, сделай выражение лица (expression creator), калейдоскоп (kaleidoscope) - строить картинку для калейдоскопа
  • Музыка и танцы – танцующий барабан …
  • Сенсор и мотор – игрушки с использованием включенных в компьютер датчиков и моторчиков
  • Агитация (speak up) – клипы на актуальные общественные темы
  • Моделирование (simulation) – по теме ближе всего к нашему курсу
  • Рассказы (stories) – различные рассказы, например анекдот, похожий на "у меня в ушах бананы", SNN-1 – скретч-пародия на американский информационный канал CNN.

Данный текст ориентирован на работу с Scratch 1.4. На момент начала работы над курсом следующая версия, Scratch 2.0 не была русифицирована. Этим обусловлен выбор. Возможно, следующая версия курса будет переориентирована на Scratch 2.0.

Методические принципы

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

Темы курса делятся на теорию и обучение программированию.

В нашем курсе теория - это некоторый фрагмент курса школьной математики акцентом на применение в компьютерной графике.

Тем не менее, мы не ограничиваемся этим, также как создатели языка scratch внесли в него много разных аспектов.

Курс также содержит задачи на освоение таких физических понятий, как точность , время и скорость. Есть раздел, посвященный обучению слепой печати, есть краткое описание природы звука, и несколько простых музыкальных упражнений.

Для теории схема следующая

  1. Теория: Объяснение некоторого фундаментального понятия
  2. Задачи на бумаге – задачи на понимание
  3. Игра-задача – для освоения и одновременно проверки понимания этого понятия. Игры – задачи это простые программы, также реализованные на языке скретч. Они дают возможность самостоятельно "пощупать" важные математические понятия и глубже усвоить материал, развить глазомер и математическую интуицию.

Для задач по программированию схема следующая:

  1. Теория - Объяснение некоторого фундаментального понятия
  2. Задачи в аудитории – предложить примеры этого понятия в жизни
  3. Практическое построение вместе некоторого примера
  4. Предложение подумать над вариантами использования этого понятия. Варианты предлагаются в виде задач и тем для творчества
  5. Далее предлагается развернутая демонстрация возможностей использования этого понятия. Эта часть в зависимости от аудитории может включать как работу преподавателей, так и самих обучаемых
  6. Объявляется конкурс на лучший проект или лучшее решение задач (данных в пункте 3)

Для работы с курсом нужно, чтобы на компьютерах были установлены программы Scratch 1.4 русская версия, Babytype. В качестве операционной системы можно использовать Windows 7 или Linux (Debian, Ubuntu, Fedora).

При разработке курса использованы книги [1], [2].

Книга [1] близка к нашей по подходу. Книга [2] учебник по программированию на языке Scratch и содержит много хороших примеров, использованных в тексте.

Кроме того, в списке литературы приведены ссылки на русскоязычные страницы преподавателей, занимающихся в России преподаванием Scratch .

Религиозный аспект курса

Мир Божий - это одно большое и прекрасное свидетельство о Творце, создавшем этот мир. Поэтому у человека, живущего реальностью, а не вымыслом, химерой, "виртуальной реальностью" есть шанс за тварью увидеть Творца. Увидеть в природе, в ближнем, в обстоятельствах жизни - мудрый, но неожиданный, потому что реальный, действующий Промысел Всевышнего.

Наоборот механизированный, компьютеризированный, предсказуемый и бездушный мир ведет к атрофии способности живо воспринимать реальность, притупляет воображение, втискивает эмоциональный мир человека в прокрустово ложе "виртуальной реальности".

Возвращаясь к теме курса, одна из целей: вырвать человека у фактического рабства у гаджетов и сделать гаджеты тем, для чего они созданы – слугами человека.

Для ребенка то, чему могут помочь гаджеты – это собственно помочь в основной задаче ребенка– научиться. Научиться видеть, научится думать. Научиться смотреть на мир с любознательным интересом, но не как потребитель, не собиратель баллов, долларов или еще каких-то фантиков, а как творец, работник, хозяин. Применительно к науке, это некая уверенность в собственном знании или способности понять. В видении законов природы, владении навыками логического и абстрактного мышления, способности обобщать, делать выводы, принимать решения и брать на себя ответственность за эти решения. Как помочь – ответ в этой книге.

Координаты в Scratch, координатная сетка, блоки движения, пример использования блоков движения в Scratch.

Координатная сетка

Сцена в Scratch представляет собой координатную сетку.

Координатная сетка в Scratch

Координатная сетка строится на основе двух линий, они называются осями. Чтобы не запутаться, у каждой оси есть свое название. Горизонтальную ось (оранжевую) принято называть ось x, а вертикальную (синюю) — ось y.

Точка пересечения осей называется началом координат. В этом месте значения по оси x и оси y равно 0.

Начало координат в координатной сетке Scratch

Если значение X положительное, то есть больше нуля, то оно находится справа от оси Y на нашей координатной сетке, если значение отрицательно (меньше нуля), то слева. В случае если значение Y положительное, то оно находится над осью X, если отрицательное — под осью. Если значение ровно 0, то точка находится на оси.

Значения на координатной сетке

Для примера рассмотрим кота Scratch. Сейчас он находится левее оси Y, значение X меньше нуля. Он выше оси X, значение Y больше нуля. Если провести от нашего кота линии до осей, то мы сможем найти его координаты: Х=-200, Y=100.

Координаты спрайта на сетке в Scratch

Координатная сетка в Scratch не отображается, однако у каждого спрайта на сцене есть свои координаты. Эти значения вы найдете под сценой. За точку принимается центр спрайта.

Координаты спрайта в Scratch

Движение в Scratch

Блоки движения в Scratch находятся первыми в левом боковом меню, все блоки движения голубого цвета.

Блок движения в Scratch

Разберем назначение каждого блока.

Идти… шагов

Блок для перемещения на сцене, 1 шаг равен 1 пикселю.

Повернуть на… градусов

Блок

Данные блоки предназначены для поворота спрайта вокруг себя. Первый блок поворачивает по часовой стрелке, второй — против.

Полный оборот вокруг себя равен 360 градусом. В этом случае спрайт вернется в то же положение. Если мы хотим, чтобы наш спрайт обернулся назад, то указываем значение 180 градусов.

Перейти

Блоки служат для мгновенного перемещения в указанное положение: на случайное, на указатель мыши, к другому спрайту или в точку по заданным координатам.

Плыть

Блоки

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

Повернуться

Блоки

Данный блок нужен для поворота в указанном направлении: к указателю мыши, к другому спрайту или на указанное количество градусов.

Блок

Изменить/Установить

Блоки

Блоки служат для изменения координат. Блок Изменить необходим для перемещения по осям на указанное значение (например, если нужно переместить влево по горизонтали, то мы выбираем изменить х на -10). Блок Установить задаёт координату в указанное значение.

Если касается края, оттолкнуться

Блок

Если наш спрайт касается края сцены, то есть координаты превышают размер сцены, то данный блок поворачивает спрайт в обратном направлении.

Установить способ вращения

Блок

Блок нужен для выбора стиля вращения: влево-вправо, не вращать, кругом.

Положение/Направление

Блоки активируют показ положения и направления спрайта на сцене.

Пример использования блоков движения в Scratch

Рассмотрим использование блоков движения на примере игры в пинг-понг, а именно создания движения мяча.

Расскажем, как в визуальном редакторе Скретч создать клона популярной у детей игры Among Us.

IT-сфера становится неотъемлемой частью жизни детей, и уже в раннем возрасте ребята учатся кодить и создавать игры. В этом им помогают визуальные среды программирования. Одна из самых популярных сред — Scratch, созданная Массачусетским технологическим институтом специально для детей и начинающих программистов.

Скретч — это онлайн-среда, поэтому детям не нужно устанавливать приложения на компьютер, достаточно зарегистрироваться на сайте. На этой же платформе свою игру можно опубликовать, чтобы в нее сыграли пользователи со всего мира.

Подробнее об устройстве Скретч и других сред программирования для детей мы рассказывали в этой статье.

Красочный дизайн вдохновляет ребят делать свои проекты, а возможность делиться игрой на сайте и получать комментарии мотивирует искать новые идеи. Мы подумали, что лучше всего вовлечь детей в программирование через их любимые игры. Несмотря на внешнюю простоту программы, на Scratch можно создать игру любого жанра: шутеры, платформеры, симуляторы, аркады и др. А еще сделать клоны популярных игр: Among Us, Brawl Stars, Friday Night at Freddy’s и т. д.

Мы решили воссоздать часть игры Among Us и делимся с вами подробными инструкциями. Если вы хотите посмотреть весь урок в видеоформате, листайте ниже.

Для начала нужно заготовить материалы для игры: в основном это спрайты (картинки). Нам понадобятся изображения главного героя — командира экипажа — и фоновые заставки: объявление о запуске игры, карта, по которой будет перемещаться персонаж, а также фон для задания. Вы можете скачать наши материалы или нарисовать собственные в графическом редакторе внутри Скретч.

Мы запрограммируем появление фонов, движения персонажа и выполнение одного задания — нашему командиру предстоит починить проводку в коридоре у управления.

Рассказываем, как вашему ребенку сделать первый шаг в изучении востребованной профессии и создать простую компьютерную игру на Scratch.

😺 Обучение детей программированию с помощью Scratch

Scratch – одна из лучших платформ для обучения юных программистов в возрасте 8+ через блочное кодирование. Она невероятно универсальна: блоки Scratch можно использовать для чего угодно, от создания анимации до составления интерактивных историй. Платформа поддерживает пользовательский ввод данных и дает ребенку практически неограниченный контроль над кодом. Опишем пошаговый рецепт создания в Scratch несложной видеоигры.

Шаг 1. План

Интерактивные игры должны удовлетворять двум требованиям:

  • Игрок должен что-то контролировать.
  • У игрока должна быть цель, которой нужно достичь.

Чтобы начать разработку игры, необходимо все спланировать. Составление плана – это первый и самый важный шаг. Он кажется тривиальным, однако план задает направления развития проекта. Чтобы его придумать, нужно последовательно пройти три этапа:

  1. Выбрать тему.
  2. Описать схему взаимодействия между персонажами и предметами.
  3. Описать цель, которой игрок должен достичь.

Как только вы разберетесь с тремя базовыми вещами, игра будет развиваться простым и естественным образом.

Шаг 2: Основная механика

Теперь, необходимо подумать, как реализовать главную идею проекта. Давайте попробуем создать простую игру-собиралку.

Тема: игра будет про русалок, а действие будет происходить под водой.

Управление: игрок будет управлять движением персонажа.

Цель: перемещая персонажа, собрать как можно больше предметов.

😺 Обучение детей программированию с помощью Scratch

Шаг 3: Оформление

Один из важнейших аспектов игры – ее внешний вид. Визуальная тема – это комбинация окружения и персонажей. В проектах Scratch персонажи и объекты представлены спрайтами. Они представляют собой изображения и появляются в основной области, где происходит ваша игра (в правом верхнем углу, называемой сценой).

😺 Обучение детей программированию с помощью Scratch

Теперь выберите своего главного героя из готового списка. Вы можете нарисовать новые спрайты самостоятельно во вкладке костюмов или в редакторе красок, а также загрузить свое фото если хотите.

Для этой игры мы выберем спрайт русалки из категории фэнтези.

😺 Обучение детей программированию с помощью Scratch

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

Когда мы создали новый спрайт, пришло время добавить в проект немного динамики.

Чтобы русалка могла двигаться, используем соответствующие блоки Scratch для создания простого скрипта. Самый легкий способ сделать спрайтовое движение – использовать Event Listeners (Слушателей событий).

😺 Обучение детей программированию с помощью Scratch

Этот блок кода заставляет спрайт двигаться вправо-влево и говорит нам:

Код состоит из желтого блока слушателя событий, за которым следуют два синих блока движения. Блоки движения перемещают спрайт, в то время как блок слушателей событий говорит ему – когда двигаться.

Это работает в любом направлении. Когда мы можем двигать русалку в стороны, давайте создадим больше скриптов, чтобы перемещать ее вверх и вниз.

😺 Обучение детей программированию с помощью Scratch

😺 Обучение детей программированию с помощью Scratch

Теперь у нас есть скрипты для перемещения во всех четырех направлениях.

Цифры в блоках – это градусы поворота. Каждое значение представляет одно из основных направлений (вправо/влево/вверх/вниз). Они указывают спрайту, в какую сторону двигаться. Теперь вам даже не нужно нажимать зеленый флаг – просто нажимайте клавиши со стрелками, и картинка оживет.

Теперь игрок может управлять спрайтом.

Перед добавлением цели давайте сначала укрепим тему, добавив фон. Хотя фоны не являются обязательными для прохождения игры, они, безусловно, добавляют атмосферность и характер в визуальное восприятие продукта.

Выбор забавного фона помогает передать тему игры и делает ее более увлекательной.

😺 Обучение детей программированию с помощью Scratch

Вы также можете нарисовать свои собственные фоны или загрузить любую картинку с компьютера. Чтобы попробовать этот вариант, нажмите соответствующие кнопки в раскрывающемся меню.

Независимо от того, какой вариант вы выберете, постарайтесь согласовать персонаж с фоном.

😺 Обучение детей программированию с помощью Scratch

Шаг 4. Добавляем цель

Теперь давайте добавим в игру цель. Для этого создадим новый спрайт, который будет взаимодействовать с главным героем.

😺 Обучение детей программированию с помощью Scratch

Поскольку в библиотеке Scratch нет жемчужин, сделаем их сами в редакторе спрайтов. Также можно нарисовать новый спрайт или использовать картинку с вашего компьютера.

Когда изображения подготовлены, переходим к динамике. В нашей игре русалка будет собирать жемчуг, и каждый раз после очередной находки необходимо, чтобы новая жемчужина появлялась в случайном месте.

Это легко сделать с помощью блока go to random position.

😺 Обучение детей программированию с помощью Scratch

Хотя здесь всего несколько блоков кода, их может оказаться непросто понять. Давайте шаг за шагом разберем этот код:

  1. Вы нажимаете зеленый флаг – игра начинается.
  2. После нажатия жемчужина проверяет, не коснулась (touching) ли ее русалка.
  3. Если это так, то жемчужина переходит на случайную позицию (random position).
  4. Шаги 2 и 3 будут повторяться бесконечно (forever).

Forever – цикл, повторно запускающий любой помещенный в него код, пока игра не остановится. Он гарантирует, что всякий раз, когда русалка касается жемчужины, та отреагирует. Без цикла жемчужина проверила бы это условие только один раз в начале игры.

Все! Теперь игра готова и неплохо работает, но все же чего-то не хватает.

Шаг 5. Дополнительные расширения

Когда у вас есть управляемый персонаж и рабочая цель, проект отвечает всем основным требованиям, но его можно улучшить.

Попробуйте подключить дополнительные функции:

  1. Счет (количество собранных предметов).
  2. Таймер (количество оставшегося у игрока на сбор жемчужин времени).
  3. Жизни (количество попыток, чтобы набить побольше очков).

Еще вы можете добавить несколько жемчужин на поле, использовать звуковые блоки Scratch для всевозможных шумов, а также включить анимацию для перемещения.

Единственное ограничение для такого рода расширений – ваше воображение!

Используя эту платформу, дети научатся мыслить творчески и рассуждать систематически, а их родители проведут время с пользой. Надеемся, вам понравилось это пошаговое руководство по созданию базовой игры на Scratch!

Посетите сообщество Scratch, чтобы продемонстрировать проект другим энтузиастам или изучить огромную коллекцию созданных ими видеоигр. Удачи!

Читайте также: