Введение в Sprite Kit Framework — Часть 1

SKView и SKScene
В Sprite Kit вся анимация и рендеринг происходят внутри SKView. Для начала вы должны разместить свой SKView в контролере и уже потом заполнить его сценами. Сцены представлены в Sprite Kit объектами SKScene. Обычно сцена содержит спрайты и другие объекты для отображения. В один момент времени, SKView может показывать только одну сцену, пока сцена является видимой ее анимация и логика выполняются автоматически кадр за кадром. Вы можете легко использовать один SKView для показа различных сцен и переходов между ними. Таким образом, при разработке игры вам понадобятся один или несколько подклассов SKScene. Обычно различные подклассы отвечают за главное меню, за саму игру, за экран завершения игры и др.

SKNode
Класс SKScene является потомком класса SKNode . При использовании Sprite Kit, ноды(узлы) являются основными строительными блоками для всего контента, в том числе и SKScene, выступающей в качестве корневого нода(узла) для дерева объектов-узлов. SKScene и его потомки определяют, какой контент обрабатывать и как его визуализировать. Положение каждого узла задается в системе координат, заданной его родителем. Также родительский класс задает отношение к другим свойствам узла и его потомков. Например, когда узел вращается, все его потомки также вращаются.
Таким образом, вы можете построить сложный образ, используя дерево узлов, а затем регулируя свойства самого верхнего узла применить к образу различные эффекты, например: поворот, масштабирование, смешать все изображения и т.д.
Класс SKNode ничего не рисует, но он применяет свои свойства его потомкам.

Текстуры
Если просто, то текстуры это  изображения, используемые для отрисовки спрайтов. Всегда используйте текстуры, когда вам нужно применить один и тот же образ на несколько спрайтов.  Обычно текстуры создаются путем загрузки файлов изображений.
Тем не менее, Sprite Kit может создавать текстуры для вас прямо «на ходу» из других источников, например из ​Core Graphics. А еще Sprite Kit может превратить ваш набор узлов с эффектами в текстуру. Sprite Kit сильно упрощает работу с текстурами беря на себя их низкоуровневую обработку.
Sprite Kit автоматически управляет текстурами. Однако если в вашей игре используется большое количество изображений, вы може взять на себя контроль за управлением текстурами, это повысит производительность.

 Атлас текстур это группа связанных текстур, которые используются вместе в вашей игре. Например , вы можете использовать атлас текстур для хранения всех текстур, относящихся к анимации одного персонажа. Атласы используются для улучшения производительности отрисовки.

SKAction
Каждое действие на сцене является объектом класса SKAction. Вы даете команду на выполнение действия и когда сцена обрабатывает кадры анимации, действие выполняется.
Некоторые действия могут быть завершены в одном кадре анимации, в то время как другие действия могут выполняться на протяжении нескольких кадров.
Наиболее распространенное применение SKAction — анимация узлов игры. Например, с помощью SKAction вы можете переместить узел, изменить масштаб или повернуть его, или сделать его прозрачным. Тем не менее, SKAction могут также изменить дерево узлов, воспроизводить звуки, или даже выполнять собственный код.
Вы можете комбинировать SKAction для создания более сложных эффектов. Вы можете создавать группы SKAction, которые будут выполняться одновременно или последовательно. Вы можете вызвать SKAction несколько раз или заставить их выполняться автоматически.

SKPhysicsBody, SKPhysicsJoint и SKPhysicsWorld
Хотя вы и можете контролировать точное положение каждого узла в сцене, часто возникает необходимость во взаимодействии узлов друг с другом. Например узлы могут сталкиваться друг с другом, увеличивать скорость после столкновения или просто падать в пространстве в зависимости от «силы притяжения».
Для того, чтобы все это организовать, для каждого узла необходимо создать «физическое тело» SKPhysicsBody и задать необходимые физические характеристики тела (форма, размер, масса и т.д.).
Когда SKPhysicsBody прикреплены к сцене, сцена начинает имитировать физику. Некоторые силы, такие как трение и гравитация, применяются в на сцене автоматически. Но также вы можете создать собственные силы и правила взаимодействия узлов на сцене.
Ускорение и скорость каждого узла вычисляется, а затем, после завершения моделирования, позиция и ориентация соответствующих узлов изменяется визуально. Вы можете точно контролировать взаимодействия узлов на сцене. Вы определяете какие узлы могут сталкиваться друг с другом и какие последствия это вызывает.
Для отслеживания этих взаимодействий можно использовать callback, это позволяет легко задавать игровую логику. Например, может вызываться callback окончания игры, когда один узел врезается в другой.
Для того чтобы определить глобальные физические характеристики всей сцены, используется SKPhysicsWorld. Например вы можете задать гравитацию для всей сцены, и все узлы на ней будут ей подчиняться.
Для моделирования физического поведения нескольких узлов, вы можете использовать SKPhysicsJoint.

Это было введение и много слов. Дальше начнем писать код.