Найти в Дзене

Scratch3. Моделируем в Scratch. Часть 5. Изменение скорости мяча при столкновении с движущимся массивным препятствием.

Продолжим. Мы вплотную приблизились к решению более сложной задачи - моделированию отскока от движущегося объекта. И любопытно то, что скрипт, обеспечивающий перемещение мяча, для этого даже не придётся менять, он практически полностью готов! Единственное дополнение, которое необходимо будет внести, это динамическое изменение расположения правой границы в ходе работы программы. Давайте добавим новый спрайт, который и будет изображать подвижную правую границу. Создайте спрайт с помощью инструмента "Нарисовать". Костюмом этого спрайта должна быть тонкая вертикальная линия от верхнего до нижнего края поля редактирования. Её можно нарисовать, например, инструментом "Прямоугольник" с нулевой толщиной контура. При помощи инструмента "Выбрать" можно поменять ширину и высоту линии, а также поместить её в центр поля редактирования. Под названием костюма - информация о ширине и высоте изображения. Наша линия имеет ширину 4 пикселя. Дайте спрайту название "препятствие",
переключитесь на вкладку
Оглавление

Продолжим.

Этап 4. Изменение скорости мяча при столкновении с движущимся массивным препятствием

Мы вплотную приблизились к решению более сложной задачи - моделированию отскока от движущегося объекта. И любопытно то, что скрипт, обеспечивающий перемещение мяча, для этого даже не придётся менять, он практически полностью готов!

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

Создайте спрайт с помощью инструмента "Нарисовать".

Костюмом этого спрайта должна быть тонкая вертикальная линия от верхнего до нижнего края поля редактирования. Её можно нарисовать, например, инструментом "Прямоугольник" с нулевой толщиной контура.

-2

При помощи инструмента "Выбрать" можно поменять ширину и высоту линии, а также поместить её в центр поля редактирования. Под названием костюма - информация о ширине и высоте изображения. Наша линия имеет ширину 4 пикселя.

-3

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

-4

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

-5

Осталось добавить в основной скрипт мяча одну строку. Числа 4 и 46 обозначают ширину линии и ширину мяча.

-6

Добавьте этот блок в основной скрипт спрайта "Мяч". Теперь скрипт выглядит так.

-7

Запустите программу, проверьте, что
будет происходить, если в момент касания отодвигать препятствие от мяча,
или напротив, двигать навстречу.

-8

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

В этом проекте нет никакого целенаправленного измерения скорости движения препятствия и использования замеренной скорости препятствия для расчёта скорости движения мяча после столкновения. Тем не менее, как можно заметить, итоговая скорость мяча складывается из его начальной скорости и скорости движения препятствия в момент столкновения.

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

На всякий случай, готовый файл проекта можно забрать из электронной библиотеки проекта. Файл с готовым проектом на данном этапе: этап4.sb3

Ранее в проекте:

1. Scratch3. Моделируем в Scratch гармонические колебания. Часть 1. Введение в проект.

2. Scratch3. Моделируем в Scratch гармонические колебания. Часть 2. Перемещение, скорость, ускорение.

3. Scratch3. Моделируем в Scratch гармонические колебания. Часть 3. Учитываем силы трения и сопротивления.

4. Scratch3. Моделируем в Scratch. Часть 4. Свободное движение по инерции с повторяющимися упругими столкновениями.