← Все вопросы

Как сделать, чтобы спрайт отскакивал от края экрана в Scratch?

Задан 7 месяцев назад443 просмотров2 ответа
9

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

2 ответа

13
✓ Принятый ответ — помог автору

Для отскока есть готовый волшебный блок «если касается края, оттолкнуться» из синей полки «Движение»! ⚽

Он сам проверяет, дошёл ли спрайт до стенки, и сам разворачивает его обратно. Тебе ничего считать не надо.

Собери так:

когда нажат зелёный флажок
всегда
    идти 10 шагов
    если касается края, оттолкнуться

Запусти флажок — шарик будет летать по экрану и отскакивать от всех четырёх стенок. 🎾

Но есть один прикол: иногда после отскока спрайт переворачивается вверх ногами. Чтобы кот не ходил кверху лапами, добавь блок «установить способ вращения: влево-вправо»:

когда нажат зелёный флажок
установить способ вращения «влево-вправо»
всегда
    идти 10 шагов
    если касается края, оттолкнуться

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

Частая ошибка: забыть про цикл «всегда». Если поставить «оттолкнуться» один раз без цикла, проверка случится только в первый миг, и шарик всё равно улетит. Отскок должен проверяться постоянно — значит, внутри «всегда». ✅

4

Маленькое объяснение, как это работает: у каждого спрайта есть направление (куда он смотрит). Блок «оттолкнуться» просто разворачивает это направление, как луч света от зеркала.

Если хочешь, чтобы мяч летел не прямо, а под углом, в начале поставь блок «повернуть в направлении 45» — тогда он будет красиво скакать по диагонали. 🙂

Ваш ответ

Войдите, чтобы ответить на вопрос.