From Test-Scratch-Wiki

Ковзати () сек до X: () Y: ()
ковзати () сек до x: () y: ()
Категорія Рух
Тип Зчіплюючий

Блок Ковзати () сек до X: () Y: () належить до блоків руху та зчіплюючих блоків. Він рівномірно рухає спрайт до позиції з указаними координатами X та Y з таким розрахунком, аби досягти цілі за вказаний проміжок часу в секундах. Такого самого ефекту можна досягти, повернувши спрайт у вказаному напрямку та періодично застосовуючи блок Перемістити на () кроків. Блок "Ковзати () сек до X: () Y: ()" зробить те саме більш акуратно, але його проблема в тім, що на час руху спрайта він зупиняє виконання скрипта, запобігаючи будь-яким іншим діям цього спрайта. Отже, інші блоки, як-от Якщо на межі, відбити, не спрацьовуватимуть під час такого руху. До того ж, цей рух можна перервати лише зупинкою скрипта.

Приклади застосування

Типові приклади застосування блоку:

  • Риба рухається в наперед заданому акваріумі
завжди
ковзати (випадкове від (1) до (2)) сек до x: (випадкове від (-240) до (240)) y: (випадкове від (-100) до (100))
  • Спрайт-перешкода створюється й рухається до межі екрану, як у Frogger
коли я отримую [ПускМашини v]
сховати
задати x (240)
повторити до <(граВсе) = [1]>
    створити клон з [мене v]
    чекати (3) секунд
end

коли я починаю як клон
показати
ковзати (5) сек до x:(-240) y:(значення y)
вилучити цей клон
  • Об'єкти, які безперешкодно падають
задати y (180)
ковзати (1) сек до x:(значення x) y:(-180)
  • Спрайт рухається до іншого, який стоїть
ковзати (1) сек до x: ([значення x v] з [спрайт2 v]) y: ([значення y v] з [спрайт2 v])

Порівняння блоків Ковзати () та Перемістити на ()

Обидва наступні скрипти переміщують спрайт рівномірно з лівого кута екрану до правого за 8 секунд.

задати x (-240)
повторити (80)
    перемістити на (6) кроків
    чекати (0.1) секунд
end
задати x (-240)
ковзати (8) сек до x:(240) y:(значення y)

Ковзання із ефектом сповільнення

Блок "Ковзати () сек ..." обчислює рух за лінійною формулою, тобто спрайт не пришвидшується на початку й не сповільнюється наприкінці. Але ефект сповільнення наприкінці, що часто застосовується в графічному дизайні, легко відтворити в Скретч.

коли я отримую [давай v]
повторити до <<([abs v] з ((x цілі) - (значення x))) < [.25]> і <([abs v] з ((y цілі) - (значення y))) < [.25]>>
 змінити x на (((x цілі) - (значення x)) / (2))
 змінити y на (((y цілі) - (значення y)) / (2))
end
перемістити в x: (x цілі) y: (y цілі)

Можна використати натомість наступний скрипт, який, разом із ефектом сповільнення, дозволяє визначити наперед, скільки часу необхідно спрайту, аби дістатися кінцевої позиції. В цьому прикладі 200 - це значення координати X, якого спрайт має досягти. Число 10 визначає час на досягнення потрібної позиції, з його зростанням цей час зростатиме. Сповільнення наприкінці виходить дуже сильним.

коли я отримую [давай v]
повторити до <(округлити (значення x)) = [200]>
    змінити x на (((200) - (значення x)) / (10))
end

Дивись також

Cookies help us deliver our services. By using our services, you agree to our use of cookies.