Материал из Скретч Вики

< Блок движения

Блок
Изображение блока
повернуться к ( v)
КатегорияДвижение
Версия СкретчСкретч
Код scratchblocksповернуться к ( v)
Тип блокаОбычный блок

Повернуться к () — это Блок движения, по форме Обычный блок. Он поворачивает свой спрайт или клон к указателю мыши или к центру костюма другого спрайта.

Примеры использования

В отличие от блока Повернуться в направлении () который не поворачивает спрайт к другому спрайту, блок Повернуться к () может поворачивать спрайт к другому спрайту или к указателю мыши. Некоторые частые использования блока Повернуться к ():

  • Направлять спрайт в сторону указателя мыши
когда щёлкнут по зелёному флагу
повторять всегда
повернуться к (указатель мыши v)
идти (10) шагов
end
  • Указать спрайту, куда ему двигаться
повернуться к (Спрайт 2 v)
повторять пока не <касается (Спрайт 2 v)?>
идти (5) шагов
end
когда я получу [Подсказка v]
повернуться к (Сокровище v)

Обходной путь

Этот блок может быть произведён с блоками, в которых используется тригонометрия:

задать [delta_x v] значение (([положение x v] от (Спрайт 1 v)) - (положение x))
задать [delta_y v] значение (([положение y v] от (Спрайт 1 v)) - (положение y))
если <(delta_y) = [0]> , то
если <(delta_x) < [0]> , то
повернуться в направлении (-90)
иначе
повернуться в направлении (90)
end
иначе
если <(delta_y) < [0]> , то
повернуться в направлении ((180) + ([atan v] от ((delta_x) / (delta_y))))
иначе
повернуться в направлении ([atan v] от ((delta_x) / (delta_y)))
end
end

повернуться в направлении (([atan v] от ((([положение x v] от (Спрайт 1 v)) - (положение x)) / (([положение y v] от (Спрайт 1 v)) - (положение y)))) + ((180) * <([положение y v] от (Спрайт 1 v)) < (положение y)>)

Однако это требует больше кода и снижает его читабельность.

Предложения

Скретчеры часто предлагали блок который поворачивает спрайт на определённую координату:[1]

повернуться к точке x: (0) y: (0):: motion

Это можно сделать, поместив спрайт в это место и используя блок Повернуться к (), или определив и используя этот пользовательский блок:

повернуться к точке x: () y: ()

определить повернуться к точке x: (x) y: (y)
задать [delta_x v] значение ((x) - (положение x))
задать [delta_y v] значение ((y) - (положение y))
если <(delta_y) = [0]> , то
если <(delta_x) < [0]> , то
повернуться в направлении (-90)
иначе
повернуться в направлении (90)
end
иначе
если <(delta_y) < [0]> , то
повернуться в направлении ((180) + ([atan v] от ((delta_x) / (delta_y))))
иначе
повернуться в направлении ([atan v] от ((delta_x) / (delta_y)))
end
end

См. также

Источники


Блоки
Движение
Внешний вид
Звук
Переменные
События
Управление

Сенсоры
Операторы
Перо
ш о
Cookie-файлы помогают нам предоставлять наши услуги. Используя наши сервисы, вы соглашаетесь с использованием cookie-файлов.