SKNode
Наследование
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSCopying
-
NSObject
Оператор импорта
Swift
import SpriteKit
Objective C
@import SpriteKit;
Доступность
Доступный в iOS 7.0 и позже.
SKNode
класс является фундаментальным стандартным блоком большей части содержания Набора Sprite. SKNode
класс не рисует визуального содержания. Его основная роль должна обеспечить базовое поведение, которое используют другие классы узла. Все визуальные элементы в Sprite Основанная на наборе игра нарисованы с помощью предопределенный SKNode
подклассы.
Таблица 1 описывает подклассы узла, предоставленные в Наборе Sprite.
Класс |
Описание |
---|---|
Узел, рисующий текстурированный спрайт. |
|
Узел, играющий видеоконтент. |
|
Узел, представляющий текстовую строку. |
|
Узел, представляющий форму на основе Базового Графического контура. |
|
Узел, создающий и представляющий частицы. |
|
Узел, что обрезки его дочерние узлы с помощью маски. |
|
Узел, применяющий Базовый фильтр Изображения к его дочерним узлам. |
|
Узел, использующийся для применения освещения и теней к сцене. |
|
|
Узел, применяющий эффекты физики к части сцены. |
Характеристики узлов
Узлы организованы иерархически в деревья узла, подобные тому, как работают представления и подпредставления. Обычно, дерево узла определяется с помощью узла сцены (SKScene
) как корневой узел и другие узлы содержания как потомки. Узел сцены выполняет цикл анимации, обрабатывающий действия с узлами, моделирующий физику, и затем представляющий содержание дерева узла для дисплея.
Каждый узел в дереве узла предоставляет систему координат своим дочерним элементам. После того, как дочерний элемент добавляется к дереву узла, оно расположено в системе координат его родителя путем установки его position
свойства. Система координат узла может масштабироваться и поворачиваться путем изменения xScale
, yScale
, и zRotation
свойства. Когда система координат узла масштабируется или поворачивается, эта трансформация применяется и к собственному содержанию узла и тому из его потомков.
SKNode
класс не выполняет собственного получения. Однако многие SKNode
подклассы представляют визуальное содержание и так SKNode
класс понимает некоторые визуальные понятия:
frame
свойство обеспечивает ограничительный прямоугольник для визуального содержания узла, измененного свойствами вращения и масштабом. Если класс узла рисует содержание, кадр непуст. Каждый подкласс узла определяет размер этого содержания по-другому. В некоторых подклассах размер содержания узла объявляется явно, такой как вSKSpriteNode
класс. В других подклассах размер содержания вычисляется неявно классом с помощью других свойств объектов. Например,SKLabelNode
объект определяет свой размер содержания с помощью текста сообщения метки и характеристик шрифта.Накопленный кадр узла, полученный путем вызова
calculateAccumulatedFrame
метод, самый большой прямоугольник, включающий кадр узла и кадры всех его потомков.Другие свойства, такой как
alpha
иhidden
свойства, влияйте, как привлечены узел и его потомки.
Все узлы являются объектами респондента, которые могут непосредственно реагировать на взаимодействие с пользователем с узлом на экране. Можно также преобразовать между системами координат и выполнить тестирование хита для определения, в каких узлах точка находится. Можно также выполнить пересечения между узлами в дереве, чтобы определить, накладываются ли их физические области.
Любой узел в дереве может выполнить действия, использующиеся, чтобы анимировать свойства узла, добавить или удалить узлы, звуки игры, или выполнить другие пользовательские задачи. Действия являются основой системы анимации в Наборе Sprite.
Узел может поддерживать организацию физики, которая является объектом, моделирующим физические свойства объекта. Когда узел имеет организацию физики, моделирование физики автоматически вычисляет новую позицию для организации физики и затем перемещает и поворачивает узел для соответствия той позиции.
Узел может предоставить ограничения что явно выраженные отношения с другими узлами или расположениями в сцене. Эти ограничения автоматически применяются сценой, прежде чем будет представлена сцена. Другой набор ограничений используется в сочетании с действиями для выполнения обратно-кинематических анимаций.
Используйте простые узлы для организации игрового содержания
Даже при том, что SKNode
объекты не могут непосредственно нарисовать содержание, существуют полезные способы использовать их в Вашей игре. Вот некоторые идеи запустить Вас:
У Вас есть содержание, накопленное от многократных объектов узла, или спрайты или другие узлы содержания. Однако Вы хотите, чтобы это содержание считалось отдельным объектом в Вашей игре, не продвигая ни один из узлов содержания, чтобы быть корнем. Основной узел является надлежащим, потому что можно дать ему позицию в дереве сцены и затем сделать все другие узлы его потомками. Эти отдельные фигуры могут также быть передвинуты или скорректированы относительно расположения родителя.
Используйте объекты узла для организации вовлеченного содержания в серию уровней. Например, много игр имеют фоновый слой для мира, другой уровень для символов и третий уровень для текста и другой информации об игре. Другие игры имеют еще много уровней. Создайте уровни как основные узлы и вставьте их в сцену в порядке. Затем по мере необходимости можно сделать отдельные слои видимыми или невидимыми.
Вам нужен объект в сцене, которая невидима, но это выполняет некоторую другую необходимую функцию. Например, в игре исследования темницы, невидимый узел мог бы использоваться для представления скрытого прерывания. Когда другой узел пересекает его, прерывание инициировано. (См. Поиск Организаций Физики.) Или для другого примера, Вы могли бы добавить узел как дочерний элемент другого узла, представляющего позицию точки зрения проигрывателя. Посмотрите Пример: Центрирование Сцены на Узле.
Существуют преимущества для наличия узла в дереве для представления этих понятий:
Можно добавить или удалить все поддеревья путем добавления или удаления единственного узла. Это делает управление сценой эффективным.
Можно скорректировать свойства узла в дереве и иметь эффекты тех свойств, распространяют вниз потомкам узла. Например, если основной узел имеет узлы спрайта, поскольку его дочерние элементы, поворачивая основной узел поворачивают все содержание спрайта также.
Можно использовать в своих интересах действия, контакты физики и другие функции Sprite Kit для реализации понятия.
Поиск дерева узла
Узлы в дереве сцены часто организуются для определения точного порядка рендеринга на сцену, не роли эти узлы игра в сцене. Кроме того, можно также загружать узлы из архивного файла вместо того, чтобы инстанцировать их непосредственно во время выполнения. Из-за этого Вы, возможно, должны быть в состоянии найти определенные узлы в дереве узла. Чтобы сделать это, Вы обеспечиваете имена к узлам и затем ищете те имена.
Узел name
свойство содержит имя узла. Имя должно быть алфавитно-цифровой строкой без любой пунктуации. Перечисление 1 показывает, как Вы могли бы назвать три различных узла для различения их друг от друга.
playerNode.name = @"player";
monsterNode1.name = @"goblin";
monsterNode2.name = @"ogre";
Когда Вы назовете узлы в дереве, решите, будут ли те имена уникальны. Если имя узла уникально, Вы никогда не должны включать больше чем один узел с тем именем в дереве сцены. С другой стороны, если имя узла не уникально в Вашей игре, оно могло бы представлять набор связанных узлов. Например, в Перечислении 1, в игре существуют, вероятно, многократные гоблины, и Вы могли бы хотеть идентифицировать их всех с тем же именем. Но проигрыватель мог бы быть уникальным узлом в игре.
Имя узла обычно служит двум целям в Вашем приложении:
Можно записать собственный код, реализующий игровую логику на основе имени узла. Например, когда два объекта физики сталкиваются, Вы могли бы использовать имена узла, чтобы определить, как коллизия влияет на геймплей.
Можно искать узлы, имеющие определенное имя. Когда сцена сначала загружается, Как правило, это сделано один раз.
SKNode
класс реализует следующие методы для поиска дерева узла:
childNodeWithName:
метод ищет дочерние элементы узла, пока он не находит соответствующий узел, тогда он останавливает и возвращает этот узел. Этот метод обычно используется для поиска узлов с уникальными именами.enumerateChildNodesWithName:usingBlock:
метод ищет дочерние элементы узла и вызывает Ваш блок один раз для каждого узла соответствия, который это находит. Вы используете этот метод, когда Вы хотите найти все узлы, совместно использующие то же имя.objectForKeyedSubscript:
метод возвращает массив узлов, соответствующих определенное имя.
Перечисление 2 показывает, как Вы могли бы создать метод на своем классе сцены для нахождения узла проигрывателя. Вы могли бы использовать метод как эта внутренняя часть Ваш код, загружающий и подготавливающий сцену.
- (SKNode *)playerNode
{
[return [self childNodeWithName:@"player"];
}
Когда этот метод вызывают на сцене, сцена ищет свои дочерние элементы (и только свои дочерние элементы) для узла чей name
свойство соответствует строку поиска, затем возвращает узел. При указании строки поиска можно или указать имя узла или имени класса. Например, если Вы создаете свой собственный подкласс для узла проигрывателя и называете его PlayerSprite
, тогда Вы могли указать PlayerSprite
как строка поиска вместо player
; тот же узел был бы возвращен.
Расширенный поиск
Поиск по умолчанию только ищет дочерние элементы узла и должен точно соответствовать или имя узла или его класс. Однако Набор Sprite обеспечивает выразительный поисковый синтаксис так, чтобы можно было выполнить больше расширенного поиска. Например, Вы могли сделать тот же поиск как прежде, но искать все дерево сцены. Или Вы могли искать дочерние элементы узла, но соответствовать образец вместо того, чтобы требовать точного совпадения.
Таблица 2 описывает различные опции синтаксиса. Поиск использует общую семантику регулярного выражения.
Синтаксис |
Описание |
---|---|
|
Когда помещено в начале строки поиска, это указывает, что поиск должен быть выполнен на корневом узле дерева. |
|
Когда помещено в начале строки поиска, это указывает, что поиск должен начаться в корневом узле и быть выполнен рекурсивно через все дерево узла. Это не законно больше нигде в строке поиска. |
|
Поиск должен переместиться до родителя узла. |
|
Когда помещено где угодно, но запуск строки поиска, это указывает, что поиск должен переместиться к дочерним элементам узла. |
|
Поиск соответствует нуль или больше символов. |
[символы, разграниченные запятыми или тире] |
Поиск соответствует любой из символов, содержавших в скобках. |
алфавитно-цифровые символы |
Поиск соответствует только указанные символы. |
Таблица 3 показывает некоторые полезные строки поиска, чтобы помочь запустить Вас.
Строка поиска |
Описание |
---|---|
|
Это ищет дочерние элементы корневого узла и соответствует любой узел имени |
|
Эта строка поиска соответствует каждый узел в дереве узла. |
|
Это ищет дерево узла и соответствует родительский узел каждого названного узла |
|
Это ищет дочерние элементы узла и возвращается, любой дочерний элемент назвал |
|
Это ищет внуков узла и возвращает любой узел, имя которого |
|
Это ищет дерево узла и возвращает любой узел, имя которого |
Разделение на подклассы примечаний
Разделение на подклассы SKNode
класс является полезным способом накопить более сложные способы поведения в Вашей игре. Посмотрите, что Использование Разделяет на подклассы для Создания Собственных Способов поведения Узла.
Если Вы добавляете свойства к подклассу, и тот подкласс должен быть заархивирован, NSCoding
протокол должен быть реализован на Ваших подклассах. См. Руководство по программированию Архивов и Сериализации.
В отличие от представлений, Вы не можете создать SKNode
подклассы, выполняющие пользовательское получение. Для реализации этого вида поведения, необходимо работать с существующими классами в SpriteKit. Например, Вы могли бы создать иерархию узлов, что каждый выполняет часть поведения рендеринга, в котором Вы нуждаетесь, или Вы могли бы использовать классы узла, поддерживающие программы построения теней индивидуального изображения и реализующие Ваши графические эффекты в программе построения теней.
-
Создает новый узел.
Объявление
Objective C
+ (instancetype)node
Возвращаемое значение
Недавно инициализированный узел.
Обсуждение
SKNode
класс не рисует или выполняет любые задачи непосредственно, таким образом, более распространено инстанцировать подкласса узла вместо этого. Однако Вы могли бы создатьSKNode
объект организовать другие связанные узлы в дереве узла.Оператор импорта
Objective C
@import SpriteKit;
Доступность
Доступный в iOS 7.0 и позже.
-
Создает новый узел путем загрузки архивного файла из основного пакета игры.
Объявление
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
Доступность
Доступный в iOS 8.0 и позже.
-
frame
СвойствоПрямоугольник в системе координат родителя, содержащей содержание узла, игнорируя дочерние элементы узла. (только для чтения)
Обсуждение
Кадр является наименьшим прямоугольником, содержащим содержание узла, принимая во внимание узел
xScale
,yScale
, иzRotation
свойства. Не все узлы содержат собственное содержание.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Вычисляет прямоугольник в системе координат родителя, содержащей содержание узла и всех его потомков.
Объявление
Swift
func calculateAccumulatedFrame() -> CGRect
Objective C
- (CGRect)calculateAccumulatedFrame
Обсуждение
Кадр берет в учетную запись кумулятивный эффект
xScale
,yScale
, иzRotation
свойства каждого узла в поддереве.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
position
Свойство -
zPosition
СвойствоВысота узла относительно его родителя.
Обсуждение
Значение по умолчанию
0.0
. Положительная ось z спроектирована к средству просмотра так, чтобы узлы с большими значениями z были ближе к средству просмотра. Когда дерево узла представляется, высота каждого узла (в абсолютных координатах) вычисляется, и затем все узлы в дереве представляются от самого маленького значения z до самого большого значения z. Если многократные узлы совместно используют ту же z позицию, те узлы сортируются так, чтобы родительские узлы были нарисованы, прежде чем их дочерние элементы и одноуровневые элементы представляются в порядке, что они появляются в своем родителеchildren
массив. Тестирование хита обрабатывается в противоположном порядке.SKView
классignoresSiblingOrder
свойство управляет, включена ли сортировка узла для узлов в той же z позиции.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Наборы
xScale
иyScale
свойства узла.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
xScale
СвойствоМасштабный коэффициент, умножающий ширину узла и его дочерних элементов.
Обсуждение
xScale
свойство масштабирует ширину узла и всех его потомков. Значение масштаба влияет, как кадр узла вычисляется, его зона испытания хита, как это нарисовано, и другие подобные характеристики. Значение по умолчанию1.0
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
yScale
СвойствоМасштабный коэффициент, умножающий высоту узла и его дочерних элементов.
Обсуждение
yScale
свойство масштабирует высоту узла и всех его потомков. Значение масштаба влияет, как кадр узла вычисляется, его зона испытания хита, как это нарисовано, и другие подобные характеристики. Значение по умолчанию1.0
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
zRotation
СвойствоЭйлерово вращение вокруг оси z (в радианах).
Обсуждение
Значение по умолчанию
0.0
, который не указывает вращения. Положительное значение указывает против часовой стрелки вращение. Когда система координат повернута, она влияет на узел и его потомков. Вращение влияет на узелframe
свойство, тестирование хита, рендеринг и другие подобные характеристики.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
alpha
СвойствоЗначение прозрачности применилось к содержанию узла.
Обсуждение
Значение по умолчанию
1.0
.SKNode
класс не выполняет получение, но многие его подклассы делают. Когда узел или любой из его потомков привлечены, альфа-компонент каждого пикселя умножается на узелalpha
свойство и затем зафиксированный к диапазону0.0
-1.0
. Это измененное альфа-значение используется для смешивания пикселя в кадровый буфер. Подклассы, представляющие содержание, определяют свойства, определяющие смешивающиеся операции, используемые в сочетании с альфа-значением для смешивания пикселей в кадровый буфер родителя.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
hidden
СвойствоБулево значение, определяющее, представляются ли узел и его потомки.
Объявление
Swift
var hidden: Bool
Objective C
@property(nonatomic, getter=isHidden) BOOL hidden
Обсуждение
Когда скрытый, узел и его потомки не представляются. Однако они все еще существуют в сцене и продолжают взаимодействовать другими способами. Например, действия узла все еще работают, и узел может все еще быть пересечен с другими узлами. Значение по умолчанию
NO
false
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
userInteractionEnabled
СвойствоБулево значение, указывающее, получает ли узел сенсорные события.
Объявление
Swift
var userInteractionEnabled: Bool
Objective C
@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled
Обсуждение
Значение по умолчанию
NO
false
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Добавляет узел до конца списка получателя дочерних узлов.
Параметры
node
Узел для добавления.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Вводит дочерний элемент в определенную позицию в списке получателя дочерних узлов.
Объявление
Objective C
- (void)insertChild:(SKNode *)
node
atIndex:(NSInteger)index
Параметры
node
Узел для добавления.
index
Позиция в массиве для вставки узла.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Удаляет узел получения из его родителя.
Объявление
Swift
func removeFromParent()
Objective C
- (void)removeFromParent
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Удаляет все дочерние элементы узла.
Объявление
Swift
func removeAllChildren()
Objective C
- (void)removeAllChildren
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Удаляет список дочерних элементов от узла получения.
Объявление
Swift
func removeChildrenInArray(_
nodes
: [AnyObject]!)Objective C
- (void)removeChildrenInArray:(NSArray *)
nodes
Параметры
nodes
Массив
SKNode
объекты, которые являются всеми дочерними элементами узла получения.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Возвращает булево значение, указывающее, является ли узел потомком целевого узла.
Объявление
Swift
func inParentHierarchy(_
parent
: SKNode) -> BoolObjective C
- (BOOL)inParentHierarchy:(SKNode *)
parent
Параметры
parent
SKNode
возразите для тестирования против.Возвращаемое значение
YES
true
если узел является потомкомparent
узел; иначеNO
false
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
children
СвойствоДочерние элементы узла. (только для чтения)
Объявление
Swift
var children: [AnyObject] { get }
Objective C
@property(nonatomic, readonly) NSArray *children
Обсуждение
Объекты в этом массиве - все
SKNode
объекты.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
parent
СвойствоРодительский узел узла. (только для чтения)
Объявление
Swift
var parent: SKNode? { get }
Objective C
@property(nonatomic, readonly) SKNode *parent
Обсуждение
Если узел не находится в дереве узла, значение
nil
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
scene
СвойствоУзел сцены, содержащий узел. (только для чтения)
Объявление
Swift
var scene: SKScene? { get }
Objective C
@property(nonatomic, readonly) SKScene *scene
Обсуждение
Если узел не встраивается в сцену, значение
nil
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
name
СвойствоПрисваиваемое имя узла.
Обсуждение
Это свойство используется для идентификации узла в других частях игровой логики. Например, Вы могли бы использовать это имя в качестве части тестирования коллизии. Можно также искать узлы в дереве их именем.
При выборе имени для узла решите, получает ли каждый узел уникальное имя или совместно используют ли некоторые узлы общее название. Если Вы даете узлу уникальное имя, можно найти узел позже путем вызова
childNodeWithName:
метод. Если имя совместно используется многократными узлами, имя обычно означает, что они - весь тип подобного объекта в Вашей игре. В этом случае можно выполнить итерации по тем объектам путем вызоваenumerateChildNodesWithName:usingBlock:
метод.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Ищет дочерние элементы узла получения для узла с собственным именем.
Объявление
Objective C
- (SKNode *)childNodeWithName:(NSString *)
name
Параметры
name
Имя к поиску. Это может быть или литеральным именем узла или специализированной строкой поиска. Посмотрите Поиск Дерева Узла.
Возвращаемое значение
Если объект узла с тем именем найден, метод возвращает объект узла. Иначе, это возвращается
nil
.Обсуждение
Если больше чем один дочерний элемент совместно использует то же имя, первый обнаруженный узел возвращается.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Ищите дочерние элементы узла получения для выполнения обработки для узлов, совместно использующих имя.
Объявление
Swift
func enumerateChildNodesWithName(_
name
: String, usingBlockblock
: ((SKNode!, UnsafeMutablePointer<ObjCBool>) -> Void)!)Objective C
- (void)enumerateChildNodesWithName:(NSString *)
name
usingBlock:(void (^)(SKNode *node, BOOL *stop))block
Параметры
name
Имя к поиску. Это может быть или литеральным именем узла или специализированной строкой поиска. Посмотрите Поиск Дерева Узла.
block
Блок для выполнения на узлах, соответствующих
name
параметр. Блок берет следующие параметры:node
Узел, соответствующий имя.
stop
Указатель на Логическую переменную. Ваш блок может установить это в
YES
true
завершать перечисление.Обсуждение
Этот метод перечисляет дочерний массив в порядке, ища узлы, имена которых соответствуют поисковый параметр. Блок вызывают один раз для каждого узла, соответствующего параметр имени.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Возвращает массив узлов, соответствующих параметр имени.
Параметры
name
Имя к поиску. Это может быть или литеральным именем узла или специализированной строкой поиска. Посмотрите Поиск Дерева Узла.
Возвращаемое значение
Массив
SKNode
объекты, соответствующие имя. Если никакие узлы соответствия не найдены, пустой массив возвращается.Оператор импорта
Objective C
@import SpriteKit;
Доступность
Доступный в iOS 8.0 и позже.
-
Добавляет действие к списку действий, выполняемых узлом.
Объявление
Swift
func runAction(_
action
: SKAction!)Objective C
- (void)runAction:(SKAction *)
action
Параметры
action
Действие для выполнения.
Обсуждение
Новое действие обрабатывается в следующий раз, когда цикл анимации сцены обрабатывается.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Добавляет действие к списку действий, выполняемых узлом. Когда действие завершается, Ваш блок вызывают.
Объявление
Swift
func runAction(_
action
: SKAction!, completionblock
: (() -> Void)!)Objective C
- (void)runAction:(SKAction *)
action
completion:(void (^)(void))block
Параметры
action
Действие для выполнения.
block
Когда действие завершается, блок завершения вызвал.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Добавляет идентифицируемое действие к списку действий, выполняемых узлом.
Объявление
Параметры
action
Действие для выполнения.
key
Уникальный ключ раньше идентифицировал действие.
Обсуждение
Этот метод идентичен
runAction:
, но действие сохранено так, чтобы оно могло быть получено позже. Если действие с помощью того же ключа уже работает, это удалено, прежде чем новое действие добавляется.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Возвращает действие, связанное с определенным ключом.
Объявление
Параметры
key
Строка, однозначно определяющая действие.
Возвращаемое значение
Если действие существует, который соответствует ключ, объект действия возвращается. Иначе,
nil
возвращается.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Возвращает булево значение, указывающее, выполняет ли узел действия.
Объявление
Swift
func hasActions() -> Bool
Objective C
- (BOOL)hasActions
Возвращаемое значение
YES
true
если узел имеет какие-либо действия выполнения; иначеNO
false
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Концы и удаляют все действия из узла.
Объявление
Swift
func removeAllActions()
Objective C
- (void)removeAllActions
Обсуждение
Когда действие удалено из узла, любая остающаяся анимация, которую выполнило бы действие, пропускается; однако, предыдущие изменения не вернулись. Возможно, что действие может внести заключительное изменение в сцену, когда удалено; если так, это документируется для определенного действия в Ссылке класса SKAction.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Удаляет действие, связанное с определенным ключом.
Объявление
Swift
func removeActionForKey(_
key
: String!)Objective C
- (void)removeActionForKey:(NSString *)
key
Параметры
key
Строка, однозначно определяющая действие.
Обсуждение
Если действие найдено, который соответствует ключ, оно удалено из узла.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
speed
СвойствоМодификатор скорости применился ко всем действиям, выполняемым узлом и его потомками.
Обсуждение
Значение по умолчанию
1.0
, что означает, что все действия работают в их нормальной скорости. При установке различной скорости время, кажется, работает быстрее или медленнее для всех действий, выполняемых на узле и его потомках. Например, если Вы устанавливаете значение скорости2.0
, действия работают вдвое более быстро.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
paused
СвойствоБулево значение, определяющее, обрабатываются ли действия с узлом и его потомками.
Объявление
Swift
var paused: Bool
Objective C
@property(nonatomic, getter=isPaused) BOOL paused
Обсуждение
Если значение
YES
true
, когда сцена обрабатывает действия, узел (и все его потомки) пропускается.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
physicsBody
СвойствоОрганизация физики связалась с узлом.
Объявление
Swift
var physicsBody: SKPhysicsBody?
Objective C
@property(nonatomic, retain) SKPhysicsBody *physicsBody
Обсуждение
Значение по умолчанию
nil
, который указывает, что узел не участвует в моделировании физики вообще. Если организации физики предоставлены, когда физика сцены моделируется, организация физики обновляет позицию узла и поворачивает узел.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Преобразовывает точку из системы координат другого узла в дереве узла к системе координат этого узла.
Объявление
Параметры
point
Точка в системе координат другого узла.
node
Другой узел в том же дереве узла как этот узел.
Возвращаемое значение
Та же точка, преобразованная в систему координат этого узла.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Преобразовывает точку в системе координат этого узла к системе координат другого узла в дереве узла.
Объявление
Параметры
point
Точка в системе координат этого узла.
node
Другой узел в том же дереве узла как этот узел.
Возвращаемое значение
Та же точка, преобразованная в систему координат другого узла.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Возвращает булево значение, указывающее, находится ли точка в ограничительной рамке узла.
Объявление
Swift
func containsPoint(_
p
: CGPoint) -> BoolObjective C
- (BOOL)containsPoint:(CGPoint)
p
Параметры
p
Точка в системе координат узла.
Возвращаемое значение
YES
true
если точка находится в ограничительной рамке узла; иначеNO
false
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Возвращает самого глубокого потомка, пересекающего точку.
Объявление
Objective C
- (SKNode *)nodeAtPoint:(CGPoint)
p
Параметры
p
Точка в системе координат узла.
Возвращаемое значение
Потомок в поддереве, пересекающем точку или получатель, если никакие узлы не пересекают точку. Если многократные потомки пересекают точку, самый глубокий узел в дереве возвращается. Если многократные узлы на том же уровне, пересекающийся узел с самой большой z позицией возвращается.
Обсуждение
Точка считается в узле, если она находится в прямоугольнике, возвращенном
calculateAccumulatedFrame
метод.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Возвращает массив всех потомков, пересекающих точку.
Объявление
Swift
func nodesAtPoint(_
p
: CGPoint) -> [AnyObject]Параметры
p
Точка в системе координат узла.
Возвращаемое значение
Массив всех
SKNode
объекты в поддереве, пересекающие точку. Если никакие узлы не пересекают точку, пустой массив возвращается.Обсуждение
Точка считается в узле, если она находится в прямоугольнике, возвращенном
calculateAccumulatedFrame
метод.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
Возвращает булево значение, указывающее, пересекает ли этот узел указанный узел.
Объявление
Swift
func intersectsNode(_
node
: SKNode) -> BoolObjective C
- (BOOL)intersectsNode:(SKNode *)
node
Параметры
node
Другой узел в том же дереве узла.
Возвращаемое значение
YES
true
если пересекаются эти два узла; иначеNO
false
.Обсуждение
Если их кадры пересекаются, эти два узла, как полагают, пересекаются. Дочерние элементы обоих узлов проигнорированы в этом тесте.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
userData
СвойствоСловарь, содержащий произвольные данные.
Объявление
Swift
var userData: NSMutableDictionary?
Objective C
@property(nonatomic, retain) NSMutableDictionary *userData
Обсуждение
Вы используете это свойство, чтобы хранить Ваши собственные данные в узле. Например, Вы могли бы хранить специфичные для игры данные о каждом узле для использования в игровой логике. Это может быть полезной альтернативой созданию Ваших собственных подклассов узла для содержания игровых данных.
Набор Sprite ничего не делает с данными, хранившими в узле. Когда узел архивируется, Однако данные архивируются.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-
constraints
СвойствоУказывает список ограничений для применения к узлу.
Объявление
Swift
var constraints: [AnyObject]?
Objective C
@property(nonatomic, copy) NSArray *constraints
Обсуждение
Присвойте массив
SKConstraint
объекты к узлу. Сцена обрабатывает эти ограничения, прежде чем будет представлена сцена. Ограничения обрабатываются в заказе массива. Если многократные узлы в дереве узла имеют ограничения, нет никакого гарантируемого порядка, в котором обрабатываются узлы.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 8.0 и позже.
-
reachConstraints
СвойствоУказывает ограничения досягаемости для применения к узлу при выполнении действия досягаемости.
Объявление
Swift
@NSCopying var reachConstraints: SKReachConstraints?
Objective C
@property(nonatomic, copy) SKReachConstraints *reachConstraints
Обсуждение
Для использования инверсной кинематики создайте новое
SKReachConstraints
возразите и присвойте его этому свойству. Когда действие досягаемости вычисляет новые позиции этого узла, возможные значения для этого узла ограничиваются ограничениями, определенными этим объектом. Для получения дополнительной информации об обратных кинематических действиях см. Ссылку класса SKAction.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 8.0 и позже.
-
Режимы, описывающие, как источник и целевые пиксельные цвета используются для вычисления нового целевого цвета.
Объявление
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
Источник и целевые цвета смешиваются путем умножения исходного альфа-значения.
Доступный в iOS 7.0 и позже.
-
Add
SKBlendModeAdd
Источник и целевые цвета добавляются вместе.
Доступный в iOS 7.0 и позже.
-
Subtract
SKBlendModeSubtract
Исходный цвет вычтен из целевого цвета.
Доступный в iOS 7.0 и позже.
-
Multiply
SKBlendModeMultiply
Исходный цвет умножается на целевой цвет.
Доступный в iOS 7.0 и позже.
-
MultiplyX2
SKBlendModeMultiplyX2
Исходный цвет умножен на целевой цвет и затем удвоен.
Доступный в iOS 7.0 и позже.
-
Screen
SKBlendModeScreen
Исходный цвет добавляется к целевым цветным временам инвертированный исходный цвет.
Доступный в iOS 7.0 и позже.
-
Replace
SKBlendModeReplace
Исходный цвет заменяет целевой цвет.
Доступный в iOS 7.0 и позже.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в iOS 7.0 и позже.
-