← Все вопросы

Как поймать касание двух спрайтов в Scratch?

Задан 24 месяца назад1.3к просмотров2 ответа
10

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

2 ответа

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

Чтобы поймать столкновение, нужен блок «касается …» из голубой полки «Сенсоры». 🎯 Это блок-вопрос: он отвечает «да», когда спрайты соприкоснулись.

Его ставят внутрь блока «если … то», а всё это — в цикл «всегда».

Пример — кот ловит мышку. Этот скрипт ставим коту:

когда нажат зелёный флажок
всегда
    если <касается «Мышка»> то
        сказать «Поймал!» 1 секунд
        изменить «Очки» на 1

Как собрать:

  1. Кликни на спрайт кота (скрипт вешаем именно на него).
  2. Возьми «всегда», внутрь — «если … то».
  3. В окошко «если» вставь блок «касается …».
  4. В выпадающем списке блока выбери «Мышка».
  5. Внутрь «если» положи, что произойдёт при ловле.

Читается как фраза: «Всегда проверяй: ЕСЛИ кот касается мышки, ТО скажи Поймал и добавь очко».

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

Частая ошибка: проверить касание один раз, без «всегда». Тогда Scratch посмотрит только в самом начале и больше не будет следить. Касание надо проверять постоянно — значит, внутри бесконечного цикла. ✅

5

Есть ещё блок «касается цвета …» — он реагирует не на спрайт, а на цвет. Удобно для лабиринтов: «если касается чёрного цвета (стенки), вернись назад».

И помни про точность: касание срабатывает по картинке спрайта, а не по квадрату вокруг. Поэтому если у героя много пустого места по краям рисунка, лучше обрезать его в редакторе костюмов, чтобы ловля была честной. 🙂

Ваш ответ

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