"'Касается цвета ()?"' - это блок сенсоров и логический блок. Блок проверяет, касается ли его спрайт заданного цвета. Если это так, то блок возвращает значение true.
Этот блок широко используется для обнаружения столкновений. Платформерычасто используют этот блок.
Предостережения
Но, этот блок может привести к не очень хорошим результатам.
Встроенное ограничение
Примечательно, что этот блок не всегда показывает значение false, если его спрайт не касается указанного цвета. Это связано с тем, что распознавание цвета в Скретче имеет встроенное ограничение, которое сокращает время обработки. В то время как сцена может отображать более 16 миллионов цветов, Скретч корректно обрабатывает только гораздо меньшее количество цветов.[1] Это означает, что блок часто показывает "ложный результат" при обнаружении цвета, который отличается от указанного (но похож на него). Многие скретчеры могут никогда не заметить этого явления, но те, кто хочет абсолютной точности в определении цвета, должны иметь в виду следующее. Имейте в виду ограничение в Скретче.
Сглаживание
Некоторые графические изображения, даже если в редакторе Скретча они выглядят с четкими краями, когда находятся на сцене. Это означает, что при выборе цвета щелчком необходимо соблюдать осторожность, чтобы по ошибке не выбрать полупрозрачный краевой пиксель.
Производительность
Разработчики, рассматривающие возможность использования этого блока, должны знать, что он медленнее, чем блок <касается ( v)?>
.[2]
Примеры использования
- Перемещайте спрайт до тех пор, пока он не каснется цвета.
повторять пока не <касается цвета [#000000]?>
идти (10) шагов
end
- Заставить спрайт что-то делать, если он касается цвета, например, если спрайт касается синего (воды), он реагирует определенным образом.
если <касается цвета [#0000ff]?>, то
говорить [Я нашёл воду!] (2) секунд
end
- Останавливает пули, если они попадают в стены определенного цвета.
повторять пока не <касается цвета [#cf4141] ?>
идти (10) шагов
end
удалить клон
- Определение того, зашел ли спрайт в тупик в лабиринте.
повторять всегда
если <касается цвета [#007f00]?>, то
говорить [Тупик!] (1) секунд
end
end
- Предотвращение прохождения спрайта сквозь стены.
повторять всегда
если <касается цвета [#ffff7f]?>, то
задать [скорость х v] значение (0)
end
end
- Завершение игры при прикосновении к определенному цвету.
повторять всегда
если <касается цвета [#01efff]?>, то
говорить [Игра окончена.] (1) секунд
передать (игра окончена v)
end
end
Источники
Cookie-файлы помогают нам предоставлять наши услуги. Используя наши сервисы, вы соглашаетесь с использованием cookie-файлов.