SKFieldNode
A SKFieldNode
применяет эффекты физики к организациям физики в определенной части сцены.
Существует много различных видов полевых узлов, которые могут быть созданы, каждый с различными эффектами. Раздел Creating Field Nodes перечисляет типы поля, можно создать использование Набор Sprite, включая тип, позволяющий Вам применять пользовательские силы к организациям физики. Инстанцируйте надлежащего вида полевого узла и затем добавьте его к дереву узла сцены.
Когда сцена моделирует эффекты физики, полевой узел применяет свой эффект к организации физики, пока следующими вещами является истина:
Полевой узел находится в дереве узла сцены.
Полевой узел
enabled
свойствоYES
true
.Организация физики присоединена к узлу, который находится в дереве узла сцены.
Организация физики расположена в полевой области узла (см.
region
).Организация физики не расположена в области другого полевого узла чей
exclusive
свойство установлено вYES
true
.Логическая операция И между полевым узлом
categoryBitMask
свойство и организация физикиfieldBitMask
свойство приводит к ненулевому значению.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSCopying
-
NSObject
Оператор импорта
Swift
import SpriteKit
Objective C
@import SpriteKit;
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, применяющий силу, сопротивляющуюся движению организаций физики.
Возвращаемое значение
Новый полевой узел перетаскивания.
Обсуждение
Сила применяется в противоположном направлении организации физики
velocity
свойство и имеет величину, пропорциональную полюstrength
свойство и скорость организации физики. (Закон Стоука)Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, применяющий электрическую силу, пропорциональную электрическому заряду организаций физики. Это поле моделирует первую часть уравнения Лоренца.
Объявление
Swift
class func electricField() -> SKFieldNode
Objective C
+ (SKFieldNode *)electricField
Возвращаемое значение
Новый узел электрического поля.
Обсуждение
Сила указывает на полевую позицию узла и имеет величину, пропорциональную полю
strength
свойство и организация физикиcharge
свойство.falloff
свойство узла электрического поля установлено по умолчанию в2
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, ускоряющий организации физики в определенном направлении.
Объявление
Objective C
+ (SKFieldNode *)linearGravityFieldWithVector:(vector_float3)
direction
Параметры
direction
Направление и величина силы тяготения. Значения представляют ускорение поля в метрах, в секунду придал квадратную форму. Например, для моделирования силы тяжести земли указать
(0, -9.8)
.Возвращаемое значение
Новый линейный полевой узел силы тяжести.
Обсуждение
Если полевой узел повернут, направление его поля силы тяжести также повернуто. Расчетная сила пропорциональна массе организации физики (подразумевать, что ускорение применилось ко всем затронутым организациям физики, константа).
Оператор импорта
Objective C
@import SpriteKit;
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, применяющий магнитную силу на основе скорости и электрического заряда организаций физики. Это поле моделирует вторую часть уравнения Лоренца.
Объявление
Swift
class func magneticField() -> SKFieldNode
Objective C
+ (SKFieldNode *)magneticField
Возвращаемое значение
Новый узел магнитного поля.
Обсуждение
Сила, сгенерированная этим полем, направлена на строку, определяющуюся путем вычисления векторного произведения между направлением организация физики
velocity
свойство и строка, прослеженная между полевым узлом и организацией физики. Сила имеет величину, пропорциональную полюstrength
свойство и организация физикиcharge
иvelocity
свойства.falloff
свойство узла магнитного поля установлено по умолчанию в2
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, применяющий рандомизированное ускорение к организациям физики. Используйте шумовое поле для моделирования эффектов, таких как светлячки или снег.
Объявление
Swift
class func noiseFieldWithSmoothness(_
smoothness
: CGFloat, animationSpeedspeed
: CGFloat) -> SKFieldNodeПараметры
smoothness
Гладкость шума раньше генерировала силы. Этот параметр должен быть значением между
0.0
и1.0
, где1.0
представляет универсальную гладкость.speed
Скорость, на которой должно измениться шумовое поле. Значение
0.0
средние значения, которые поле не должно анимировать вообще.Возвращаемое значение
Новый шумовой полевой узел.
Обсуждение
Ускорение пропорционально полевой силе в псевдослучайном направлении. Расчетная сила пропорциональна массе организации физики (подразумевать, что ускорение применилось ко всем затронутым организациям физики, константа).
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, ускоряющий организации физики к полевому узлу.
Объявление
Swift
class func radialGravityField() -> SKFieldNode
Objective C
+ (SKFieldNode *)radialGravityField
Возвращаемое значение
Новый радиальный полевой узел силы тяжести.
Обсуждение
Сила поля измеряется, ускорение поля в метрах в секунду придало квадратную форму. Положительное число указывает, что организация ускоряется к полевому узлу. Расчетная сила пропорциональна массе организации физики (подразумевать, что ускорение применилось ко всем затронутым организациям физики, константа).
falloff
свойство радиального полевого узла силы тяжести установлено по умолчанию в2
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, применяющий весеннюю силу, вытягивающую организации физики к полевому узлу.
Возвращаемое значение
Новый пружинный полевой узел.
Обсуждение
Сила поля измеряет силу пружины. Положительное число указывает, что организация ускоряется к полевому узлу.
falloff
свойство пружинного полевого узла установлено по умолчанию в1
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, применяющий рандомизированное ускорение к организациям физики. Величина ускорения пропорциональна скорости организации.
Объявление
Swift
class func turbulenceFieldWithSmoothness(_
smoothness
: CGFloat, animationSpeedspeed
: CGFloat) -> SKFieldNodeПараметры
smoothness
Гладкость шума раньше генерировала силы. Этот параметр должен быть значением между
0.0
и1.0
, где1.0
представляет универсальную гладкость.speed
Скорость, на которой должно измениться шумовое поле. Значение
0.0
средние значения, которые поле не должно анимировать вообще.Возвращаемое значение
Новый полевой узел турбулентности.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, устанавливающий скорость организаций физики, вводящих область узла. Значение определяется поиском текстуры на основе расположения организации физики относительно узла.
Объявление
Swift
class func velocityFieldWithTexture(_
velocityTexture
: SKTexture) -> SKFieldNodeObjective C
+ (SKFieldNode *)velocityFieldWithTexture:(SKTexture *)
velocityTexture
Параметры
velocityTexture
Нормальная текстура раньше указывала скорости в различных точках в поле.
Возвращаемое значение
Новый скоростной полевой узел.
Обсуждение
Когда организация физики затронута, ее новая скорость в каждом кадре вычисляется путем выполнения поиска текстуры (обрабатывающий значение как вектор нормали) и затем умножающий тот вектор силой поля. Поле имеет неявный размер (область), равная размеру текстуры; организации физики вне этой области незатронуты полевым узлом.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
Создает полевой узел, дающий организациям физики постоянную скорость.
Объявление
Objective C
+ (SKFieldNode *)velocityFieldWithVector:(vector_float3)
velocityVector
Параметры
velocityVector
Скорость, которую будут иметь любые затронутые организации физики.
Возвращаемое значение
Новый скоростной полевой узел.
Оператор импорта
Objective C
@import SpriteKit;
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
Создает полевой узел, применяющий перпендикулярную силу к организациям физики.
Возвращаемое значение
Новый узел вихревого поля.
Обсуждение
Сила поля измеряется, ускорение поля в метрах в секунду придало квадратную форму (подразумевать, что подобный силе тяжести, все организации физики затронуты одинаково). Организация физики ускоряется вдоль перпендикуляра строки между полевой позицией узла и позицией организации физики. Положительная полевая сила указывает, что организация ускоряется в направлении против часовой стрелки.
falloff
свойство узла вихревого поля установлено по умолчанию в2
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Создает полевой узел, вычисляющий и применяющий пользовательскую силу к организации физики.
Объявление
Objective C
+ (SKFieldNode *)customFieldWithEvaluationBlock:(SKFieldForceEvaluator)
block
Параметры
block
Пользовательский блок, который будет выполняться, когда организация физики затронута полем. Ваш блок должен вычислить и возвратить силу, которая будет применена к организации.
Возвращаемое значение
Новый пользовательский полевой узел.
Оператор импорта
Objective C
@import SpriteKit;
Доступность
Доступный в OS X v10.10 и позже.
-
включенный включенный
СвойствоБулево значение, указывающее, активно ли поле.
Объявление
Swift
var enabled: Bool
Objective C
@property(nonatomic, getter=isEnabled) BOOL enabled
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
монопольный монопольный
СвойствоБулево значение, указывающее, должен ли полевой узел переопределить все другие полевые узлы, которые могли бы иначе влиять на организации физики.
Объявление
Swift
var exclusive: Bool
Objective C
@property(nonatomic, getter=isExclusive) BOOL exclusive
Обсуждение
Если значение установлено в
YES
true
и организация физики в области этого поля, проигнорированы все другие полевые узлы, которые могли бы иначе влиять на эту организацию. Значение по умолчаниюNO
false
.Если Вы устанавливаете это свойство в
YES
true
на многократных полевых узлах в сцене не должны накладываться их области. Если они делают, результаты не определены.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Область (относительно источника узла), на который влияет поле.
Обсуждение
Полевой узел применяет свой эффект ко всем организациям физики, которые являются частично или полностью в его области. Значение по умолчанию является областью бесконечного размера.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
minimumRadius minimumRadius
СвойствоМинимальное значение для основанных на расстоянии эффектов.
Объявление
Swift
var minimumRadius: Float
Objective C
@property(nonatomic) float minimumRadius
Обсуждение
Когда расстояние между узлом и организацией физики вычисляется, любое расстояние короче, чем значение, сохраненное в
minimumRadius
свойство обрабатывается, как будто это равно ему. Значение по умолчанию является очень маленьким (но ненулевой) значение.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
categoryBitMask categoryBitMask
СвойствоМаска, определяющая, которому принадлежат категории это поле.
Объявление
Swift
var categoryBitMask: UInt32
Objective C
@property(nonatomic) uint32_t categoryBitMask
Обсуждение
Каждое поле в сцене может быть присвоено максимум 32 различным категориям, каждый соответствующий немного в битовой маске. Значения маски не предопределяются Набором Sprite. Вы определяете значения маски, использующиеся в Вашей игре. Полевой узел
categoryBitMask
свойство по сравнению с организацией физикиfieldBitMask
свойство с помощью логической операции И. Если результат является ненулевым, поле применяется к организации физики.Значение по умолчанию
0xFFFFFFFF
(весь набор битов).Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Сила поля.
Объявление
Swift
var strength: Float
Objective C
@property(nonatomic) float strength
Обсуждение
Значение по умолчанию
1.0
. Нет никакой определенной единицы измерения для этого свойства, потому что фактический эффект зависит от вида полевого создаваемого узла. На практике лучший подход должен экспериментировать с различными полевыми сильными местами и использовать их для определения собственного значения опытным путем.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
падение конъюнктуры падение конъюнктуры
СвойствоЭкспонента, определяющая уровень затухания для силы поля как расстояние, увеличивается между узлом и затрагиваемой организацией физики.
Объявление
Swift
var falloff: Float
Objective C
@property(nonatomic) float falloff
Обсуждение
Когда сила полевого узла вычисляется, сила умножается на
pow(distance - minRadius, -falloff)
. Значение падения конъюнктуры по умолчанию0
, который указывает, что никакое затухание не имеет место. Некоторые типы полевых узлов игнорируют параметр падения конъюнктуры полностью, в то время как другие изменяют значение по умолчанию на что-то, что более логично для того типа полевого узла.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
Эти свойства связаны с определенными типами полевых узлов.
-
animationSpeed animationSpeed
СвойствоУровень тот, в который шум или полевые изменения узла турбулентности.
Объявление
Swift
var animationSpeed: Float
Objective C
@property(nonatomic) float animationSpeed
Обсуждение
Значение
0.0
средние значения, которые поле не должно анимировать вообще.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
Гладкость шума раньше генерировала силы.
Объявление
Swift
var smoothness: Float
Objective C
@property(nonatomic) float smoothness
Обсуждение
Этот параметр должен быть значением между
0.0
и1.0
, где1.0
представляет универсальную гладкость.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
-
направление направление
СвойствоНаправление скоростного полевого узла.
Объявление
Objective C
@property(nonatomic) vector_float3 direction
Оператор импорта
Objective C
@import SpriteKit;
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
Нормальная текстура, указывающая скорости в различных точках в скоростном полевом узле.
Объявление
Swift
var texture: SKTexture!
Objective C
@property(nonatomic, retain) SKTexture *texture
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.10 и позже.
См. также
Типы данных
-
Тип вектора с плавающей точкой раньше выполнял вычисления физики.
Объявление
Objective C
typedef __attribute__((__ext_vector_type__(3))) float vector_float3;
Оператор импорта
Objective C
@import SpriteKit;
Доступность
Доступный в OS X v10.10 и позже.
-
Определение для пользовательского блока, обрабатывающего единственное взаимодействие организации физики с полем.
Объявление
Objective C
typedef vector_float3 (^SKFieldForceEvaluator)(vector_float3 position, vector_float3 velocity, float mass, float charge, NSTimeInterval time);
Обсуждение
Блочные параметры определяются следующим образом:
position
Позиция организации физики. Координаты, как предполагается, в следующем порядке:
x
,y
,z
. В наборе Sprite,z
координата всегда0
.velocity
Скорость организации физики. Координаты, как предполагается, в следующем порядке:
dx
,dy
,dz
. В наборе Sprite,dz
координата всегда0
.mass
Масса организации физики.
charge
Заряд организации физики.
time
Количество времени, передавшее с прошлого раза моделирование, выполнялось.
Ваш блок должен выполнить любые вычисления силы, которыми Вы интересуетесь и возвращаете получающуюся силу.
Оператор импорта
Objective C
@import SpriteKit;
Доступность
Доступный в OS X v10.10 и позже.