Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы SpriteKit ссылка класса SKNode

Опции
Развертывание Target:

На этой странице
Язык:

SKNode

SKNode класс является фундаментальным стандартным блоком большей части содержания Набора Sprite. SKNode класс не рисует визуального содержания. Его основная роль должна обеспечить базовое поведение, которое используют другие классы узла. Все визуальные элементы в Sprite Основанная на наборе игра нарисованы с помощью предопределенный SKNode подклассы.

Таблица 1 описывает подклассы узла, предоставленные в Наборе Sprite.

Табличные 1Node подклассы

Класс

Описание

SKSpriteNode

Узел, рисующий текстурированный спрайт.

SKVideoNode

Узел, играющий видеоконтент.

SKLabelNode

Узел, представляющий текстовую строку.

SKShapeNode

Узел, представляющий форму на основе Базового Графического контура.

SKEmitterNode

Узел, создающий и представляющий частицы.

SKCropNode

Узел, что обрезки его дочерние узлы с помощью маски.

SKEffectNode

Узел, применяющий Базовый фильтр Изображения к его дочерним узлам.

SKLightNode

Узел, использующийся для применения освещения и теней к сцене.

SKFieldNode (и подклассы)

Узел, применяющий эффекты физики к части сцены.

Характеристики узлов

Узлы организованы иерархически в деревья узла, подобные тому, как работают представления и подпредставления. Обычно, дерево узла определяется с помощью узла сцены (SKScene) как корневой узел и другие узлы содержания как потомки. Узел сцены выполняет цикл анимации, обрабатывающий действия с узлами, моделирующий физику, и затем представляющий содержание дерева узла для дисплея.

Каждый узел в дереве узла предоставляет систему координат своим дочерним элементам. После того, как дочерний элемент добавляется к дереву узла, оно расположено в системе координат его родителя путем установки его position свойства. Система координат узла может масштабироваться и поворачиваться путем изменения xScale, yScale, и zRotation свойства. Когда система координат узла масштабируется или поворачивается, эта трансформация применяется и к собственному содержанию узла и тому из его потомков.

SKNode класс не выполняет собственного получения. Однако многие SKNode подклассы представляют визуальное содержание и так SKNode класс понимает некоторые визуальные понятия:

  • frame свойство обеспечивает ограничительный прямоугольник для визуального содержания узла, измененного свойствами вращения и масштабом. Если класс узла рисует содержание, кадр непуст. Каждый подкласс узла определяет размер этого содержания по-другому. В некоторых подклассах размер содержания узла объявляется явно, такой как в SKSpriteNode класс. В других подклассах размер содержания вычисляется неявно классом с помощью других свойств объектов. Например, SKLabelNode объект определяет свой размер содержания с помощью текста сообщения метки и характеристик шрифта.

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

  • Другие свойства, такой как alpha и hidden свойства, влияйте, как привлечены узел и его потомки.

Все узлы являются объектами респондента, которые могут непосредственно реагировать на взаимодействие с пользователем с узлом на экране. Можно также преобразовать между системами координат и выполнить тестирование хита для определения, в каких узлах точка находится. Можно также выполнить пересечения между узлами в дереве, чтобы определить, накладываются ли их физические области.

Любой узел в дереве может выполнить действия, использующиеся, чтобы анимировать свойства узла, добавить или удалить узлы, звуки игры, или выполнить другие пользовательские задачи. Действия являются основой системы анимации в Наборе Sprite.

Узел может поддерживать организацию физики, которая является объектом, моделирующим физические свойства объекта. Когда узел имеет организацию физики, моделирование физики автоматически вычисляет новую позицию для организации физики и затем перемещает и поворачивает узел для соответствия той позиции.

Узел может предоставить ограничения что явно выраженные отношения с другими узлами или расположениями в сцене. Эти ограничения автоматически применяются сценой, прежде чем будет представлена сцена. Другой набор ограничений используется в сочетании с действиями для выполнения обратно-кинематических анимаций.

Используйте простые узлы для организации игрового содержания

Даже при том, что SKNode объекты не могут непосредственно нарисовать содержание, существуют полезные способы использовать их в Вашей игре. Вот некоторые идеи запустить Вас:

  • У Вас есть содержание, накопленное от многократных объектов узла, или спрайты или другие узлы содержания. Однако Вы хотите, чтобы это содержание считалось отдельным объектом в Вашей игре, не продвигая ни один из узлов содержания, чтобы быть корнем. Основной узел является надлежащим, потому что можно дать ему позицию в дереве сцены и затем сделать все другие узлы его потомками. Эти отдельные фигуры могут также быть передвинуты или скорректированы относительно расположения родителя.

  • Используйте объекты узла для организации вовлеченного содержания в серию уровней. Например, много игр имеют фоновый слой для мира, другой уровень для символов и третий уровень для текста и другой информации об игре. Другие игры имеют еще много уровней. Создайте уровни как основные узлы и вставьте их в сцену в порядке. Затем по мере необходимости можно сделать отдельные слои видимыми или невидимыми.

  • Вам нужен объект в сцене, которая невидима, но это выполняет некоторую другую необходимую функцию. Например, в игре исследования темницы, невидимый узел мог бы использоваться для представления скрытого прерывания. Когда другой узел пересекает его, прерывание инициировано. (См. Поиск Организаций Физики.) Или для другого примера, Вы могли бы добавить узел как дочерний элемент другого узла, представляющего позицию точки зрения проигрывателя. Посмотрите Пример: Центрирование Сцены на Узле.

Существуют преимущества для наличия узла в дереве для представления этих понятий:

  • Можно добавить или удалить все поддеревья путем добавления или удаления единственного узла. Это делает управление сценой эффективным.

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

  • Можно использовать в своих интересах действия, контакты физики и другие функции Sprite Kit для реализации понятия.

Поиск дерева узла

Узлы в дереве сцены часто организуются для определения точного порядка рендеринга на сцену, не роли эти узлы игра в сцене. Кроме того, можно также загружать узлы из архивного файла вместо того, чтобы инстанцировать их непосредственно во время выполнения. Из-за этого Вы, возможно, должны быть в состоянии найти определенные узлы в дереве узла. Чтобы сделать это, Вы обеспечиваете имена к узлам и затем ищете те имена.

Узел name свойство содержит имя узла. Имя должно быть алфавитно-цифровой строкой без любой пунктуации. Перечисление 1 показывает, как Вы могли бы назвать три различных узла для различения их друг от друга.

Перечисление 1Naming ряд узлов
  • playerNode.name = @"player";
  • monsterNode1.name = @"goblin";
  • monsterNode2.name = @"ogre";

Когда Вы назовете узлы в дереве, решите, будут ли те имена уникальны. Если имя узла уникально, Вы никогда не должны включать больше чем один узел с тем именем в дереве сцены. С другой стороны, если имя узла не уникально в Вашей игре, оно могло бы представлять набор связанных узлов. Например, в Перечислении 1, в игре существуют, вероятно, многократные гоблины, и Вы могли бы хотеть идентифицировать их всех с тем же именем. Но проигрыватель мог бы быть уникальным узлом в игре.

Имя узла обычно служит двум целям в Вашем приложении:

  • Можно записать собственный код, реализующий игровую логику на основе имени узла. Например, когда два объекта физики сталкиваются, Вы могли бы использовать имена узла, чтобы определить, как коллизия влияет на геймплей.

  • Можно искать узлы, имеющие определенное имя. Когда сцена сначала загружается, Как правило, это сделано один раз.

SKNode класс реализует следующие методы для поиска дерева узла:

  • childNodeWithName: метод ищет дочерние элементы узла, пока он не находит соответствующий узел, тогда он останавливает и возвращает этот узел. Этот метод обычно используется для поиска узлов с уникальными именами.

  • enumerateChildNodesWithName:usingBlock: метод ищет дочерние элементы узла и вызывает Ваш блок один раз для каждого узла соответствия, который это находит. Вы используете этот метод, когда Вы хотите найти все узлы, совместно использующие то же имя.

  • objectForKeyedSubscript: метод возвращает массив узлов, соответствующих определенное имя.

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

Перечисление 2Finding узел проигрывателя
  • - (SKNode *)playerNode
  • {
  • [return [self childNodeWithName:@"player"];
  • }

Когда этот метод вызывают на сцене, сцена ищет свои дочерние элементы (и только свои дочерние элементы) для узла чей name свойство соответствует строку поиска, затем возвращает узел. При указании строки поиска можно или указать имя узла или имени класса. Например, если Вы создаете свой собственный подкласс для узла проигрывателя и называете его PlayerSprite, тогда Вы могли указать PlayerSprite как строка поиска вместо player; тот же узел был бы возвращен.

Расширенный поиск

Поиск по умолчанию только ищет дочерние элементы узла и должен точно соответствовать или имя узла или его класс. Однако Набор Sprite обеспечивает выразительный поисковый синтаксис так, чтобы можно было выполнить больше расширенного поиска. Например, Вы могли сделать тот же поиск как прежде, но искать все дерево сцены. Или Вы могли искать дочерние элементы узла, но соответствовать образец вместо того, чтобы требовать точного совпадения.

Таблица 2 описывает различные опции синтаксиса. Поиск использует общую семантику регулярного выражения.

Табличные 2Search опции синтаксиса

Синтаксис

Описание

/

Когда помещено в начале строки поиска, это указывает, что поиск должен быть выполнен на корневом узле дерева.

//

Когда помещено в начале строки поиска, это указывает, что поиск должен начаться в корневом узле и быть выполнен рекурсивно через все дерево узла. Это не законно больше нигде в строке поиска.

..

Поиск должен переместиться до родителя узла.

/

Когда помещено где угодно, но запуск строки поиска, это указывает, что поиск должен переместиться к дочерним элементам узла.

*

Поиск соответствует нуль или больше символов.

[символы, разграниченные запятыми или тире]

Поиск соответствует любой из символов, содержавших в скобках.

алфавитно-цифровые символы

Поиск соответствует только указанные символы.

Таблица 3 показывает некоторые полезные строки поиска, чтобы помочь запустить Вас.

Табличные 3Example поиски

Строка поиска

Описание

/MyName

Это ищет дочерние элементы корневого узла и соответствует любой узел имени MyName.

//*

Эта строка поиска соответствует каждый узел в дереве узла.

//MyName/..

Это ищет дерево узла и соответствует родительский узел каждого названного узла MyName.

A[0-9]

Это ищет дочерние элементы узла и возвращается, любой дочерний элемент назвал A0, A1, …, A9.

Abby/Normal

Это ищет внуков узла и возвращает любой узел, имя которого Normal и чьего родителя называют Abby.

//Abby/Normal

Это ищет дерево узла и возвращает любой узел, имя которого Normal и чьего родителя называют Abby.

Разделение на подклассы примечаний

Разделение на подклассы SKNode класс является полезным способом накопить более сложные способы поведения в Вашей игре. Посмотрите, что Использование Разделяет на подклассы для Создания Собственных Способов поведения Узла.

Если Вы добавляете свойства к подклассу, и тот подкласс должен быть заархивирован, NSCoding протокол должен быть реализован на Ваших подклассах. См. Руководство по программированию Архивов и Сериализации.

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

Оператор импорта


Swift

import SpriteKit

Objective C

@import SpriteKit;

Доступность


Доступный в OS X v10.9 и позже.
  • Создает новый узел.

    Объявление

    Objective C

    + (instancetype)node

    Возвращаемое значение

    Недавно инициализированный узел.

    Обсуждение

    SKNode класс не рисует или выполняет любые задачи непосредственно, таким образом, более распространено инстанцировать подкласса узла вместо этого. Однако Вы могли бы создать SKNode объект организовать другие связанные узлы в дереве узла.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Доступность

    Доступный в OS X v10.9 и позже.

  • Создает новый узел путем загрузки архивного файла из основного пакета игры.

    Объявление

    Swift

    convenience init!(fileNamed filename: String)

    Objective C

    + (instancetype)nodeWithFileNamed:(NSString *)filename

    Параметры

    filename

    Имя файла, без расширения файла. Файл должен быть в основном пакете приложения и иметь a .sks расширение файла.

    Возвращаемое значение

    Разархивированный объект узла.

    Обсуждение

    Если Вы вызываете этот метод на подклассе SKScene класс и объект в архиве SKScene объект, возвращенный объект инициализируется, как будто это - элемент подкласса. Вы используете это поведение создать разметки сцены в Редакторе XCode и обеспечить пользовательские способы поведения в Вашем подклассе.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • кадр кадр Свойство

    Прямоугольник в системе координат родителя, содержащей содержание узла, игнорируя дочерние элементы узла. (только для чтения)

    Объявление

    Swift

    var frame: CGRect { get }

    Objective C

    @property(nonatomic, readonly) CGRect frame

    Обсуждение

    Кадр является наименьшим прямоугольником, содержащим содержание узла, принимая во внимание узел xScale, yScale, и zRotation свойства. Не все узлы содержат собственное содержание.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Вычисляет прямоугольник в системе координат родителя, содержащей содержание узла и всех его потомков.

    Объявление

    Swift

    func calculateAccumulatedFrame() -> CGRect

    Objective C

    - (CGRect)calculateAccumulatedFrame

    Обсуждение

    Кадр берет в учетную запись кумулятивный эффект xScale, yScale, и zRotation свойства каждого узла в поддереве.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

    См. также

    кадр

  • позиция позиция Свойство

    Позиция узла в системе координат его родителя.

    Объявление

    Swift

    var position: CGPoint

    Objective C

    @property(nonatomic) CGPoint position

    Обсуждение

    Значение по умолчанию (0.0,0.0).

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • zPosition zPosition Свойство

    Высота узла относительно его родителя.

    Объявление

    Swift

    var zPosition: CGFloat

    Objective C

    @property(nonatomic) CGFloat zPosition

    Обсуждение

    Значение по умолчанию 0.0. Положительная ось z спроектирована к средству просмотра так, чтобы узлы с большими значениями z были ближе к средству просмотра. Когда дерево узла представляется, высота каждого узла (в абсолютных координатах) вычисляется, и затем все узлы в дереве представляются от самого маленького значения z до самого большого значения z. Если многократные узлы совместно используют ту же z позицию, те узлы сортируются так, чтобы родительские узлы были нарисованы, прежде чем их дочерние элементы и одноуровневые элементы представляются в порядке, что они появляются в своем родителе children массив. Тестирование хита обрабатывается в противоположном порядке.

    SKView класс ignoresSiblingOrder свойство управляет, включена ли сортировка узла для узлов в той же z позиции.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Наборы xScale и yScale свойства узла.

    Объявление

    Swift

    func setScale(_ scale: CGFloat)

    Objective C

    - (void)setScale:(CGFloat)scale

    Параметры

    scale

    Новое значение для использования для узла xScale и yScale свойства.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • xScale xScale Свойство

    Масштабный коэффициент, умножающий ширину узла и его дочерних элементов.

    Объявление

    Swift

    var xScale: CGFloat

    Objective C

    @property(nonatomic) CGFloat xScale

    Обсуждение

    xScale свойство масштабирует ширину узла и всех его потомков. Значение масштаба влияет, как кадр узла вычисляется, его зона испытания хита, как это нарисовано, и другие подобные характеристики. Значение по умолчанию 1.0.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • yScale yScale Свойство

    Масштабный коэффициент, умножающий высоту узла и его дочерних элементов.

    Объявление

    Swift

    var yScale: CGFloat

    Objective C

    @property(nonatomic) CGFloat yScale

    Обсуждение

    yScale свойство масштабирует высоту узла и всех его потомков. Значение масштаба влияет, как кадр узла вычисляется, его зона испытания хита, как это нарисовано, и другие подобные характеристики. Значение по умолчанию 1.0.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • zRotation zRotation Свойство

    Эйлерово вращение вокруг оси z (в радианах).

    Объявление

    Swift

    var zRotation: CGFloat

    Objective C

    @property(nonatomic) CGFloat zRotation

    Обсуждение

    Значение по умолчанию 0.0, который не указывает вращения. Положительное значение указывает против часовой стрелки вращение. Когда система координат повернута, она влияет на узел и его потомков. Вращение влияет на узел frame свойство, тестирование хита, рендеринг и другие подобные характеристики.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • альфа альфа Свойство

    Значение прозрачности применилось к содержанию узла.

    Объявление

    Swift

    var alpha: CGFloat

    Objective C

    @property(nonatomic) CGFloat alpha

    Обсуждение

    Значение по умолчанию 1.0.

    SKNode класс не выполняет получение, но многие его подклассы делают. Когда узел или любой из его потомков привлечены, альфа-компонент каждого пикселя умножается на узел alpha свойство и затем зафиксированный к диапазону 0.0-1.0. Это измененное альфа-значение используется для смешивания пикселя в кадровый буфер. Подклассы, представляющие содержание, определяют свойства, определяющие смешивающиеся операции, используемые в сочетании с альфа-значением для смешивания пикселей в кадровый буфер родителя.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • скрытый скрытый Свойство

    Булево значение, определяющее, представляются ли узел и его потомки.

    Объявление

    Swift

    var hidden: Bool

    Objective C

    @property(nonatomic, getter=isHidden) BOOL hidden

    Обсуждение

    Когда скрытый, узел и его потомки не представляются. Однако они все еще существуют в сцене и продолжают взаимодействовать другими способами. Например, действия узла все еще работают, и узел может все еще быть пересечен с другими узлами. Значение по умолчанию NOfalse.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Булево значение, указывающее, получает ли узел сенсорные события.

    Объявление

    Swift

    var userInteractionEnabled: Bool

    Objective C

    @property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled

    Обсуждение

    Значение по умолчанию NOfalse.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Добавляет узел до конца списка получателя дочерних узлов.

    Объявление

    Swift

    func addChild(_ node: SKNode)

    Objective C

    - (void)addChild:(SKNode *)node

    Параметры

    node

    Узел для добавления.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Вводит дочерний элемент в определенную позицию в списке получателя дочерних узлов.

    Объявление

    Swift

    func insertChild(_ node: SKNode!, atIndex index: Int)

    Objective C

    - (void)insertChild:(SKNode *)node atIndex:(NSInteger)index

    Параметры

    node

    Узел для добавления.

    index

    Позиция в массиве для вставки узла.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Удаляет узел получения из его родителя.

    Объявление

    Swift

    func removeFromParent()

    Objective C

    - (void)removeFromParent

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Удаляет все дочерние элементы узла.

    Объявление

    Swift

    func removeAllChildren()

    Objective C

    - (void)removeAllChildren

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Удаляет список дочерних элементов от узла получения.

    Объявление

    Swift

    func removeChildrenInArray(_ nodes: [AnyObject]!)

    Objective C

    - (void)removeChildrenInArray:(NSArray *)nodes

    Параметры

    nodes

    Массив SKNode объекты, которые являются всеми дочерними элементами узла получения.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Возвращает булево значение, указывающее, является ли узел потомком целевого узла.

    Объявление

    Swift

    func inParentHierarchy(_ parent: SKNode) -> Bool

    Objective C

    - (BOOL)inParentHierarchy:(SKNode *)parent

    Параметры

    parent

    SKNode возразите для тестирования против.

    Возвращаемое значение

    YEStrue если узел является потомком parent узел; иначе NOfalse.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Дочерние элементы узла. (только для чтения)

    Объявление

    Swift

    var children: [AnyObject] { get }

    Objective C

    @property(nonatomic, readonly) NSArray *children

    Обсуждение

    Объекты в этом массиве - все SKNode объекты.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Родительский узел узла. (только для чтения)

    Объявление

    Swift

    var parent: SKNode? { get }

    Objective C

    @property(nonatomic, readonly) SKNode *parent

    Обсуждение

    Если узел не находится в дереве узла, значение nil.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • сцена сцена Свойство

    Узел сцены, содержащий узел. (только для чтения)

    Объявление

    Swift

    var scene: SKScene? { get }

    Objective C

    @property(nonatomic, readonly) SKScene *scene

    Обсуждение

    Если узел не встраивается в сцену, значение nil.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • имя имя Свойство

    Присваиваемое имя узла.

    Объявление

    Swift

    var name: String?

    Objective C

    @property(nonatomic, copy) NSString *name

    Обсуждение

    Это свойство используется для идентификации узла в других частях игровой логики. Например, Вы могли бы использовать это имя в качестве части тестирования коллизии. Можно также искать узлы в дереве их именем.

    При выборе имени для узла решите, получает ли каждый узел уникальное имя или совместно используют ли некоторые узлы общее название. Если Вы даете узлу уникальное имя, можно найти узел позже путем вызова childNodeWithName: метод. Если имя совместно используется многократными узлами, имя обычно означает, что они - весь тип подобного объекта в Вашей игре. В этом случае можно выполнить итерации по тем объектам путем вызова enumerateChildNodesWithName:usingBlock: метод.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Ищет дочерние элементы узла получения для узла с собственным именем.

    Объявление

    Swift

    func childNodeWithName(_ name: String) -> SKNode?

    Objective C

    - (SKNode *)childNodeWithName:(NSString *)name

    Параметры

    name

    Имя к поиску. Это может быть или литеральным именем узла или специализированной строкой поиска. Посмотрите Поиск Дерева Узла.

    Возвращаемое значение

    Если объект узла с тем именем найден, метод возвращает объект узла. Иначе, это возвращается nil.

    Обсуждение

    Если больше чем один дочерний элемент совместно использует то же имя, первый обнаруженный узел возвращается.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

    См. также

    имя

  • Ищите дочерние элементы узла получения для выполнения обработки для узлов, совместно использующих имя.

    Объявление

    Swift

    func enumerateChildNodesWithName(_ name: String, usingBlock block: ((SKNode!, UnsafeMutablePointer<ObjCBool>) -> Void)!)

    Objective C

    - (void)enumerateChildNodesWithName:(NSString *)name usingBlock:(void (^)(SKNode *node, BOOL *stop))block

    Параметры

    name

    Имя к поиску. Это может быть или литеральным именем узла или специализированной строкой поиска. Посмотрите Поиск Дерева Узла.

    block

    Блок для выполнения на узлах, соответствующих name параметр. Блок берет следующие параметры:

    node

    Узел, соответствующий имя.

    stop

    Указатель на Логическую переменную. Ваш блок может установить это в YEStrue завершать перечисление.

    Обсуждение

    Этот метод перечисляет дочерний массив в порядке, ища узлы, имена которых соответствуют поисковый параметр. Блок вызывают один раз для каждого узла, соответствующего параметр имени.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

    См. также

    имя

  • Возвращает массив узлов, соответствующих параметр имени.

    Объявление

    Objective C

    - (NSArray *)objectForKeyedSubscript:(NSString *)name

    Параметры

    name

    Имя к поиску. Это может быть или литеральным именем узла или специализированной строкой поиска. Посмотрите Поиск Дерева Узла.

    Возвращаемое значение

    Массив SKNode объекты, соответствующие имя. Если никакие узлы соответствия не найдены, пустой массив возвращается.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Доступность

    Доступный в OS X v10.10 и позже.

  • Добавляет действие к списку действий, выполняемых узлом.

    Объявление

    Swift

    func runAction(_ action: SKAction!)

    Objective C

    - (void)runAction:(SKAction *)action

    Параметры

    action

    Действие для выполнения.

    Обсуждение

    Новое действие обрабатывается в следующий раз, когда цикл анимации сцены обрабатывается.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Добавляет действие к списку действий, выполняемых узлом. Когда действие завершается, Ваш блок вызывают.

    Объявление

    Swift

    func runAction(_ action: SKAction!, completion block: (() -> Void)!)

    Objective C

    - (void)runAction:(SKAction *)action completion:(void (^)(void))block

    Параметры

    action

    Действие для выполнения.

    block

    Когда действие завершается, блок завершения вызвал.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Добавляет идентифицируемое действие к списку действий, выполняемых узлом.

    Объявление

    Swift

    func runAction(_ action: SKAction, withKey key: String!)

    Objective C

    - (void)runAction:(SKAction *)action withKey:(NSString *)key

    Параметры

    action

    Действие для выполнения.

    key

    Уникальный ключ раньше идентифицировал действие.

    Обсуждение

    Этот метод идентичен runAction:, но действие сохранено так, чтобы оно могло быть получено позже. Если действие с помощью того же ключа уже работает, это удалено, прежде чем новое действие добавляется.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

    См. также

    – actionForKey:

  • Возвращает действие, связанное с определенным ключом.

    Объявление

    Swift

    func actionForKey(_ key: String) -> SKAction?

    Objective C

    - (SKAction *)actionForKey:(NSString *)key

    Параметры

    key

    Строка, однозначно определяющая действие.

    Возвращаемое значение

    Если действие существует, который соответствует ключ, объект действия возвращается. Иначе, nil возвращается.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

    См. также

    – runAction:withKey:

  • Возвращает булево значение, указывающее, выполняет ли узел действия.

    Объявление

    Swift

    func hasActions() -> Bool

    Objective C

    - (BOOL)hasActions

    Возвращаемое значение

    YEStrue если узел имеет какие-либо действия выполнения; иначе NOfalse.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Концы и удаляют все действия из узла.

    Объявление

    Swift

    func removeAllActions()

    Objective C

    - (void)removeAllActions

    Обсуждение

    Когда действие удалено из узла, любая остающаяся анимация, которую выполнило бы действие, пропускается; однако, предыдущие изменения не вернулись. Возможно, что действие может внести заключительное изменение в сцену, когда удалено; если так, это документируется для определенного действия в Ссылке класса SKAction.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Удаляет действие, связанное с определенным ключом.

    Объявление

    Swift

    func removeActionForKey(_ key: String!)

    Objective C

    - (void)removeActionForKey:(NSString *)key

    Параметры

    key

    Строка, однозначно определяющая действие.

    Обсуждение

    Если действие найдено, который соответствует ключ, оно удалено из узла.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Модификатор скорости применился ко всем действиям, выполняемым узлом и его потомками.

    Объявление

    Swift

    var speed: CGFloat

    Objective C

    @property(nonatomic) CGFloat speed

    Обсуждение

    Значение по умолчанию 1.0, что означает, что все действия работают в их нормальной скорости. При установке различной скорости время, кажется, работает быстрее или медленнее для всех действий, выполняемых на узле и его потомках. Например, если Вы устанавливаете значение скорости 2.0, действия работают вдвое более быстро.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Булево значение, определяющее, обрабатываются ли действия с узлом и его потомками.

    Объявление

    Swift

    var paused: Bool

    Objective C

    @property(nonatomic, getter=isPaused) BOOL paused

    Обсуждение

    Если значение YEStrue, когда сцена обрабатывает действия, узел (и все его потомки) пропускается.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • physicsBody physicsBody Свойство

    Организация физики связалась с узлом.

    Объявление

    Swift

    var physicsBody: SKPhysicsBody?

    Objective C

    @property(nonatomic, retain) SKPhysicsBody *physicsBody

    Обсуждение

    Значение по умолчанию nil, который указывает, что узел не участвует в моделировании физики вообще. Если организации физики предоставлены, когда физика сцены моделируется, организация физики обновляет позицию узла и поворачивает узел.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Преобразовывает точку из системы координат другого узла в дереве узла к системе координат этого узла.

    Объявление

    Swift

    func convertPoint(_ point: CGPoint, fromNode node: SKNode) -> CGPoint

    Objective C

    - (CGPoint)convertPoint:(CGPoint)point fromNode:(SKNode *)node

    Параметры

    point

    Точка в системе координат другого узла.

    node

    Другой узел в том же дереве узла как этот узел.

    Возвращаемое значение

    Та же точка, преобразованная в систему координат этого узла.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Преобразовывает точку в системе координат этого узла к системе координат другого узла в дереве узла.

    Объявление

    Swift

    func convertPoint(_ point: CGPoint, toNode node: SKNode) -> CGPoint

    Objective C

    - (CGPoint)convertPoint:(CGPoint)point toNode:(SKNode *)node

    Параметры

    point

    Точка в системе координат этого узла.

    node

    Другой узел в том же дереве узла как этот узел.

    Возвращаемое значение

    Та же точка, преобразованная в систему координат другого узла.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Возвращает булево значение, указывающее, находится ли точка в ограничительной рамке узла.

    Объявление

    Swift

    func containsPoint(_ p: CGPoint) -> Bool

    Objective C

    - (BOOL)containsPoint:(CGPoint)p

    Параметры

    p

    Точка в системе координат узла.

    Возвращаемое значение

    YEStrue если точка находится в ограничительной рамке узла; иначе NOfalse.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Возвращает самого глубокого потомка, пересекающего точку.

    Объявление

    Swift

    func nodeAtPoint(_ p: CGPoint) -> SKNode

    Objective C

    - (SKNode *)nodeAtPoint:(CGPoint)p

    Параметры

    p

    Точка в системе координат узла.

    Возвращаемое значение

    Потомок в поддереве, пересекающем точку или получатель, если никакие узлы не пересекают точку. Если многократные потомки пересекают точку, самый глубокий узел в дереве возвращается. Если многократные узлы на том же уровне, пересекающийся узел с самой большой z позицией возвращается.

    Обсуждение

    Точка считается в узле, если она находится в прямоугольнике, возвращенном calculateAccumulatedFrame метод.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Возвращает массив всех потомков, пересекающих точку.

    Объявление

    Swift

    func nodesAtPoint(_ p: CGPoint) -> [AnyObject]

    Objective C

    - (NSArray *)nodesAtPoint:(CGPoint)p

    Параметры

    p

    Точка в системе координат узла.

    Возвращаемое значение

    Массив всех SKNode объекты в поддереве, пересекающие точку. Если никакие узлы не пересекают точку, пустой массив возвращается.

    Обсуждение

    Точка считается в узле, если она находится в прямоугольнике, возвращенном calculateAccumulatedFrame метод.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Возвращает булево значение, указывающее, пересекает ли этот узел указанный узел.

    Объявление

    Swift

    func intersectsNode(_ node: SKNode) -> Bool

    Objective C

    - (BOOL)intersectsNode:(SKNode *)node

    Параметры

    node

    Другой узел в том же дереве узла.

    Возвращаемое значение

    YEStrue если пересекаются эти два узла; иначе NOfalse.

    Обсуждение

    Если их кадры пересекаются, эти два узла, как полагают, пересекаются. Дочерние элементы обоих узлов проигнорированы в этом тесте.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • userData userData Свойство

    Словарь, содержащий произвольные данные.

    Объявление

    Swift

    var userData: NSMutableDictionary?

    Objective C

    @property(nonatomic, retain) NSMutableDictionary *userData

    Обсуждение

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

    Набор Sprite ничего не делает с данными, хранившими в узле. Когда узел архивируется, Однако данные архивируются.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Указывает список ограничений для применения к узлу.

    Объявление

    Swift

    var constraints: [AnyObject]?

    Objective C

    @property(nonatomic, copy) NSArray *constraints

    Обсуждение

    Присвойте массив SKConstraint объекты к узлу. Сцена обрабатывает эти ограничения, прежде чем будет представлена сцена. Ограничения обрабатываются в заказе массива. Если многократные узлы в дереве узла имеют ограничения, нет никакого гарантируемого порядка, в котором обрабатываются узлы.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Указывает ограничения досягаемости для применения к узлу при выполнении действия досягаемости.

    Объявление

    Swift

    @NSCopying var reachConstraints: SKReachConstraints?

    Objective C

    @property(nonatomic, copy) SKReachConstraints *reachConstraints

    Обсуждение

    Для использования инверсной кинематики создайте новое SKReachConstraints возразите и присвойте его этому свойству. Когда действие досягаемости вычисляет новые позиции этого узла, возможные значения для этого узла ограничиваются ограничениями, определенными этим объектом. Для получения дополнительной информации об обратных кинематических действиях см. Ссылку класса SKAction.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Режимы, описывающие, как источник и целевые пиксельные цвета используются для вычисления нового целевого цвета.

    Объявление

    Swift

    enum SKBlendMode : Int { case Alpha case Add case Subtract case Multiply case MultiplyX2 case Screen case Replace }

    Objective C

    typedef SKBlendMode : NSInteger { SKBlendModeAlpha = 0, SKBlendModeAdd = 1, SKBlendModeSubtract = 2, SKBlendModeMultiply = 3, SKBlendModeMultiplyX2 = 4, SKBlendModeScreen = 5, SKBlendModeReplace = 6, } SKBlendMode;

    Константы

    • Alpha

      SKBlendModeAlpha

      Источник и целевые цвета смешиваются путем умножения исходного альфа-значения.

      Доступный в OS X v10.9 и позже.

    • Add

      SKBlendModeAdd

      Источник и целевые цвета добавляются вместе.

      Доступный в OS X v10.9 и позже.

    • Subtract

      SKBlendModeSubtract

      Исходный цвет вычтен из целевого цвета.

      Доступный в OS X v10.9 и позже.

    • Multiply

      SKBlendModeMultiply

      Исходный цвет умножается на целевой цвет.

      Доступный в OS X v10.9 и позже.

    • MultiplyX2

      SKBlendModeMultiplyX2

      Исходный цвет умножен на целевой цвет и затем удвоен.

      Доступный в OS X v10.9 и позже.

    • Screen

      SKBlendModeScreen

      Исходный цвет добавляется к целевым цветным временам инвертированный исходный цвет.

      Доступный в OS X v10.9 и позже.

    • Replace

      SKBlendModeReplace

      Исходный цвет заменяет целевой цвет.

      Доступный в OS X v10.9 и позже.

    Оператор импорта

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в OS X v10.9 и позже.