Лекция 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 доступны на платной основе.