From Test-Scratch-Wiki
Слідувати за () | |
слідувати за ()
| |
Категорія | Рух |
Тип | Зчіплюючий |
Блок Слідувати за () — це блок руху та зчіплюючий блок. Блок змінює напрям спрайту в такий спосіб, аби він вказував на зазначену ціль, тобто повертає спрайт.
Примітка: Цей блок не рухає спрайт, а лише повертає його! Мова йде радше про дещо невдалий україномовний переклад; зрозумілішим було б "слідкувати за" або ж точно дослівне "вказати на".
На відміну від блоку Повернути в напрямку (), цей блок повертає спрайт до вказаного об'єкту, зокрема, до вказівника миші.
Приклади застосування
Типові приклади застосування блоку Слідувати за ():
- Неперервний рух спрайта до вказівника миші:
коли @greenFlag натиснуто завжди слідувати за [вказівник миші v] перемістити на (10) кроків
- Переслідування іншого спрайта
повторити до <торкається [спрайт2 v]?> слідувати за [спрайт2 v] перемістити на (5) кроків
- Вказівка цілі завдання на екрані
коли я отримую [Підказка v] слідувати за [Скарб v]
Обхідний шлях
Цей блок можна замінити наступним фрагментом скрипта, який спирається на тригонометрію:
надати [delta_x v] значення (([значення x v] з [спрайт2 v]) - (значення x)) надати [delta_y v] значення (([значення y v] з [спрайт2 v]) - (значення y)) якщо <(delta_y) = [0]> то якщо <(delta_x) < [0]> то повернути в напрямку (-90 v) інакше повернути в напрямку (90 v) end інакше якщо <(delta_y) < [0]> то повернути в напрямку ((180) + ([atan v] з ((delta_x) / (delta_y)))) інакше повернути в напрямку ([atan v] з ((delta_x) / (delta_y))) end end
Історія
Скретчери запитували[1] блок слідувати за x: (0) y: (0)::motion
.
Його дія полягала б у повороті спрайта до точки із вказаними координатами. Але це можна легко зімітувати за допомогою попереднього фрагменту скрипта, якщо підставити туди значення x та y замість відповідних фрагментів ([значення x v] з [спрайт2 v]
та ([значення y v] з [спрайт2 v]
.