Лекция 14 CS193P Winter 2017 — Демонстрационный пример Dynamic Animation.

Лекция 14 полностью посвящена демонстрационному примеру, показывающему все возможности Dynamic Animation на примере космической видеоигры Asteroids с астероидами и космическим кораблем. Динамическая анимация Dynamic Animation используется по большей части в UI для таких вещей, как анимация на iPhone всплывающей снизу панели, которая ударяется о верхний край, немного колеблется и “замирает”. Для написания таких игр, например, SpriteKit и другие. Но  профессор выбрал создание видеоигры для демонстрации возможностей динамической анимации Dynamic Animation потому, что это занимательно и это дает возможность насыщенно показать множество различных “поведений” их взаимодействие в сложном составном «поведении».

В демонстрационном примере показан целый спектр «поведений»:  столкновения UICollisionBehavior, гравитации UIGravityBehavior и мета-поведения UIDynamicItemBehavior, толчок UIPushBehavior, а также создание пользовательского составное сложное «поведение», которое является subclass UIDynamicBehavior. Показана работа делегата столкновений UICollisionBehaviorDelegate. По ходу дела, как всегда, Пол Хэгерти демонстрирует синтаксические конструкции Swift в действии:  lazy vars,  инициализация с помощью выполняемых замыканий, разрыв циклических ссылок в памяти с помощью списка захвата [ unowned self ]  в замыканиях и когда такой способ разрыва является безопасным.

Интересно наблюдать за тем, как профессор создает большое приложение сверху, то есть сначала инфраструктура, а потом — более детальная реализация отдельных частей.

В заключении демонстрируется возможность ограничения линейной скорости динамических объектов с помощью замыкания action «физического» поведения UIDynamicItemBehavior.
Лекции и слайды на английском языке представлены в iTunes название “14.  Dynamic Animation Demo”. Код демонстрационного примера «L14 Asteriods» доступен на Github.

Русскоязычный неавторизованный конспект Лекции 14, хронометрированный через каждые 5 минут, и представленный в виде PDF-файла, который можно скачать и использовать offline, а также Google Doc доступны на платной основе.