О наборе Sprite
Набор Sprite обеспечивает графическую инфраструктуру рендеринга и анимации, которую можно использовать для анимации произвольных текстурированных изображений или спрайтов. Набор Sprite использует традиционный цикл рендеринга, где содержание каждого кадра обрабатывается, прежде чем кадр представляется. Ваша игра определяет содержание сцены и как то содержание изменяется в каждом кадре. Набор Sprite выполняет работу для рендеринга кадров анимации эффективно с помощью аппаратного обеспечения машинной графики. Набор Sprite оптимизирован так, чтобы положения спрайтов могли смениться произвольно в каждом кадре анимации.
Набор Sprite также обеспечивает другую функциональность, которая полезна для игр, включая основную поддержку воспроизведения звука и моделирование физики. Кроме того, XCode предоставляет встроенную поддержку для Набора Sprite так, чтобы можно было создать сложные специальные эффекты и текстурировать атласы непосредственно в XCode. Эта комбинация платформы и инструментов заставляет Sprite Снарядить хороший выбор для игр и других приложений, требующих подобных видов анимации. Для других видов анимации пользовательского интерфейса используйте Базовую Анимацию вместо этого.
Сразу
Набор Sprite доступен на iOS и OS X. Это использует аппаратное обеспечение машинной графики, доступное на устройстве хостинга для составления композита 2D изображений при высоких частотах кадров. Набор Sprite поддерживает много различных видов содержания, включая:
Нетекстурированные или текстурированные прямоугольники (спрайты)
Текст
Произвольные находящиеся в CGPath формы
Видео
Набор Sprite также предоставляет поддержку для обрезки и других специальных эффектов; можно применить эти эффекты ко всем или части содержания. Можно анимировать или изменить эти элементы в каждом кадре. Можно также присоединить организации физики к этим элементам так, чтобы они должным образом поддерживали силы и коллизии.
Поскольку Набор Sprite поддерживает богатую инфраструктуру рендеринга и обрабатывает всю низкоуровневую работу для представления команд рисования OpenGL, можно фокусировать усилия на решении высокоуровневых проблем проектирования и создании большого геймплея.
Содержание Sprite Нарисовано путем Представления Сцен В Представлении Sprite
Анимация и рендеринг выполняются SKView
объект. Вы помещаете это представление в окне, затем представляете содержание к нему. Поскольку это - представление, его содержание может быть объединено с другими представлениями в иерархии представления.
Содержание в Вашей игре организовано в сцены, представленные SKScene
объекты. Сцена содержит спрайты и другое содержание, которое будет представлено. Сцена также реализует логику на кадр и довольный обработка. В любой момент времени представление представляет одну сцену. Пока сцена представлена, ее анимация и логика на кадр автоматически выполняются.
Для создания игры с помощью Набора Sprite Вы любой разделяете на подклассы SKScene
класс или создает делегата сцены для выполнения главных связанных с игрой задач. Например, Вы могли бы создать отдельные классы сцены для отображения главного меню, экрана геймплея и содержания, выведенного на экран после того, как заканчивается игра. Можно легко использовать сингл SKView
возразите в своем окне и переключателе между различными сценами. При переключении сцен можно использовать SKTransition
класс для анимации между этими двумя сценами.
Дерево узла определяет то, что появляется в сцене
SKScene
класс является потомком SKNode
класс. При использовании Набора Sprite узлы являются фундаментальными стандартными блоками для всего содержания с объектом сцены, действующим как корневой узел для дерева объектов узла. Сцена и ее потомки определяют, какое содержание нарисовано и как это представляется.
Позиция каждого узла указана в системе координат, определенной ее родителем. Узел также применяет другие свойства к своему содержанию и содержанию его потомков. Например, когда узел повернут, все его потомки повернуты также. Можно создать сложное изображение с помощью дерева узлов и затем повернуть, масштабировать и смешать все изображение путем корректировки свойств самого верхнего узла.
SKNode
класс ничего не рисует, но он применяет свои свойства к его потомкам. Каждый вид drawable содержания представлен отличным подклассом в Наборе Sprite. Некоторые другие подклассы узла не рисуют собственное содержание, но изменяют поведение их потомков. Например, можно использовать SKEffectNode
объект применить Базовый фильтр Изображения ко всему поддереву в сцене. Путем точного управления структурой дерева узла Вы определяете порядок, в котором представляются узлы.
Все объекты узла являются объектами респондента, убывая любой от UIResponder
или NSResponder
, таким образом, можно разделить любой класс узла на подклассы и создать новые классы, принимающие ввод данных пользователем. Класс представления автоматически расширяет цепочку респондента для включения дерева узла сцены.
Текстуры содержат допускающие повторное использование графические данные
Текстуры являются добавленными изображениями, используемыми для рендеринга спрайтов. Всегда используйте текстуры каждый раз, когда необходимо применить то же изображение к многократным спрайтам. Обычно Вы создаете текстуры путем загрузки файлов образа, сохраненных в комплекте приложений. Однако Набор Sprite может также создать текстуры для Вас во время выполнения из других источников, включая Базовые Графические изображения или даже путем рендеринга дерева узла в текстуре.
Набор Sprite упрощает управление текстурой путем обработки кода низшего уровня, требуемого загрузить текстуры и сделать их доступными для аппаратного обеспечения машинной графики. Управлением текстурой автоматически управляет Набор Sprite. Однако, если Ваша игра использует большое количество изображений, можно улучшить его производительность, беря под свой контроль части процесса. Прежде всего Вы делаете это, говоря Набор Sprite явно загрузить текстуру.
Атлас текстуры является группой связанных текстур, использующихся вместе в Вашей игре. Например, Вы могли бы использовать атлас текстуры для хранения всех текстур, должен был анимировать символ, или все мозаики должны были представить фон уровня геймплея. Набор Sprite использует атласы текстуры для улучшения производительности рендеринга.
Узлы выполняют действия для анимации содержания
Содержание сцены анимировано с помощью действий. Каждое действие является объектом, определенным SKAction
класс. Вы говорите узлам выполнять действия. Затем когда сцена обрабатывает кадры анимации, действия выполняются. Некоторые действия завершаются в единственном кадре анимации, в то время как другие действия применяются, переключает многократные кадры анимации перед завершением. Наиболее популярный способ использования действий должен анимировать изменения в свойствах узла. Например, Вы можете действия по созданию, перемещающие узел, масштабирующие или поворачивающие его или делающие его прозрачным. Однако действия могут также изменить дерево узла, звуки игры, или даже выполнить пользовательский код.
Действия очень полезны, но можно также объединить действия для создания более сложных эффектов. Можно создать группы действий, работающих одновременно или последовательности, куда действия работают последовательно. Можно заставить действия автоматически повторяться.
Сцены могут также выполнить пользовательскую обработку на кадр. Вы переопределяете методы своего подкласса сцены для выполнения дополнительных игровых задач. Например, если узел должен быть перемещен каждый кадр, Вы могли бы скорректировать его свойства непосредственно каждый кадр вместо того, чтобы использовать действие, чтобы сделать так.
Добавьте организации физики и соединения для моделирования физики в сцене
Несмотря на то, что можно управлять точной позицией каждого узла в сцене, часто Вы хотите, чтобы эти узлы взаимодействовали друг с другом, сталкиваясь друг с другом и передавая скоростные изменения в процессе. Вы могли бы также хотеть сделать вещи, не обрабатывающиеся системой действия, такой как моделирование силы тяжести и других сил. Чтобы сделать это, Вы создаете организации физики (SKPhysicsBody
) и присоедините их к узлам в Вашей сцене. Каждая организация физики определяется формой, размером, массой и другими физическими характеристиками. Сцена определяет глобальные характеристики для моделирования физики в присоединенном SKPhysicsWorld
объект. Вы используете мир физики, чтобы определить силу тяжести для всего моделирования и определить скорость моделирования.
Когда организации физики включены в сцену, сцена моделирует физику на тех организациях. Некоторые силы, такие как трение и сила тяжести, применяются автоматически. Другие силы могут быть применены автоматически к многократным организациям физики путем добавления SKFieldNode
объекты к сцене. Вы можете также непосредственно влиять на определенную полевую организацию путем изменения ее скорости непосредственно или путем применения сил или посылаете импульсы непосредственно к ней. Ускорение и скорость каждой организации вычислены, и организации сталкиваются друг с другом. Затем после того, как моделирование завершено, позиции и вращения соответствующих узлов обновляются.
Вы имеете точный контроль, по которому эффекты физики взаимодействуют друг с другом. Например, Вы можете, что определенный полевой узел физики только влияет на подмножество организаций физики в сцене. Вы также решаете, какие организации физики могут столкнуться друг с другом и отдельно решить, какие взаимодействия заставляют Ваше приложение быть вызванным. Вы используете эти обратные вызовы для добавления игровой логики. Например, когда его организация физики поражена другой организацией физики, Ваша игра могла бы уничтожить узел.
Можно также использовать мир физики, чтобы найти организации физики в сцене и соединить физические тела вместе с помощью соединения (SKPhysicsJoint
). Связанные организации моделируются вместе на основе вида соединения.
Как использовать этот документ
Считайте Вскакивание в Набор Sprite для получения обзора реализации игры Набора Sprite. Тогда работа через другие главы для приобретения знаний подробных данных о функциях Набора Sprite. Некоторые главы включают предложенные упражнения, чтобы помочь Вам разработать свое понимание Набора Sprite. Набор Sprite лучше всего изучен на практике; поместите некоторые спрайты в сцену и экспериментируйте на них!
Последняя глава, Методы наиболее успешной практики Набора Sprite, вдается в большее количество подробностей о разработке игры с помощью Набора Sprite.
Предпосылки
Прежде, чем попытаться создать игру с помощью Набора Sprite, необходимо уже быть знакомы с основными принципами разработки приложений. В частности необходимо быть знакомы со следующими понятиями:
Разработка приложений с помощью XCode
Objective C, включая поддержку блоков
Представление и оконная система
Для получения дополнительной информации:
На iOS посмотрите, Начинают Разрабатывать приложения для iOS Сегодня.
На OS X посмотрите, Начинают Разрабатывать Приложения Mac Сегодня.
См. также
Посмотрите Ссылку Платформы SpriteKit при необходимости в определенных подробных данных о функциях и классах в платформе Набора Sprite. Некоторые функции, доступные в Наборе Sprite, не описаны в этом руководстве по программированию, но описаны в ссылке.
Посмотрите Справку Атласа Текстуры и Частицу Эмиттерный редактор Гуид для получения информации о том, как использовать встроенную поддержку XCode Набора Sprite.
См., что code:Explained Приключение для всестороннего взгляда на Набор Sprite базировало игру.
Следующие выборки доступны только в библиотеке OS X, но все еще служат полезными примерами Набора Sprite для приложений для iOS:
Посмотрите Тур Sprite для подробного взгляда на
SKSpriteNode
класс.Посмотрите Коллизии Физики SpriteKit для понимания системы физики в Наборе Sprite.