Лекция 14 полностью посвящена демонстрационному примеру, показывающему все возможности Dynamic Animation на примере космической видеоигры Asteroids с астероидами и космическим кораблем. Динамическая анимация Dynamic Animation используется по большей части в UI для таких вещей, как анимация на iPhone всплывающей снизу панели, которая ударяется о верхний край, немного колеблется и “замирает”. Для написания таких игр, например, SpriteKit и другие. Но профессор выбрал создание видеоигры для демонстрации возможностей динамической анимации Dynamic Animation потому, что это занимательно и это дает возможность насыщенно показать множество различных “поведений” их взаимодействие в сложном составном «поведении».
В демонстрационном примере показан целый спектр «поведений»: столкновения UICollisionBehavior, гравитации UIGravityBehavior и мета-поведения UIDynamicItemBehavior, толчок UIPushBehavior, а также создание пользовательского составное сложное «поведение», которое является subclass UIDynamicBehavior. Показана работа делегата столкновений UICollisionBehaviorDelegate. По ходу дела, как всегда, Пол Хэгерти демонстрирует синтаксические конструкции Swift в действии: lazy vars, инициализация с помощью выполняемых замыканий, разрыв циклических ссылок в памяти с помощью списка захвата [ unowned self ] в замыканиях и когда такой способ разрыва является безопасным.