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

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

Разработчик

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

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

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

SKTexture

SKTexture объект является изображением, которому можно примениться к SKSpriteNode и SKShapeNode объекты или частицы, создаваемые SKEmitterNode объект. Объект текстуры управляет данными текстуры и графическими ресурсами, которые необходимы для рендеринга изображения.

Большинство объектов текстуры создается из исходных изображений, сохраненных в Вашем комплекте приложений — иллюстрации Вашей игры. После того, как создаваемый, текстура содержание объекта является неизменным. Многократные спрайты могут совместно использовать тот же объект текстуры, совместно использовав единственный ресурс.

Используйте textureWithImageNamed: метод для создания SKTexture объект. Когда объект текстуры инициализируется с помощью файла образа, Набор Sprite должен выполнить два шага, прежде чем это сможет использовать текстуру для рендеринга спрайтов. Во-первых, это должно загрузить данные текстуры из файла. Во-вторых, это должно подготовить данные текстуры, которые будут использоваться аппаратным обеспечением машинной графики. Оба из этих шагов могут быть дорогими по сравнению с другими операциями Sprite Kit. В частности загрузка текстуры от файла является очень дорогой. Набор Sprite задерживает загрузку и подготовку текстуры максимально долго и также обеспечивает методы, которые можно использовать для управления этими шагами.

Данные текстуры загружаются когда:

  • size метод на объекте текстуры вызывают.

  • Другой метод вызывают, который требует размера текстуры, такого как создание нового SKSpriteNode возразите, что использует объект текстуры.

  • Один из методов предварительной нагрузки вызывают (См. Предварительно загружение Данных Текстуры.)

Данные текстуры подготовлены к рендерингу когда:

  • Спрайт или частица, использующая текстуру, являются частью представляющегося дерева узла.

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

Объекты текстуры могут быть созданы из данных, сгенерированных во время выполнения. Например, можно создать текстуру из Кварца 2D изображение из данных необработанного пикселя, или путем применения Базового фильтра Изображения к существующей текстуре. Можно также вызвать textureFromNode: метод для рендеринга дерева узла в текстуре. Ни одна из этих текстур не должна быть загружена, потому что их данные уже находятся в памяти, когда создается текстура. Однако текстура должна все еще быть подготовлена Набором Sprite, прежде чем это сможет использоваться для рендеринга.

Если у Вас есть текстуры, которые должны быть обновлены во время выполнения, видеть SKMutableTexture класс.

Управление памятью текстуры

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

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

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

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

Для более длительного обсуждения управления текстурой посмотрите Работу со Спрайтами.

Текстуры карты нормалей

Текстура карты нормалей подобна текстуре изображения, но вместо того, чтобы содержать данные изображения, которые будут выведены на экран на экране, каждый элемент текстуры представляет вектор нормали. Текстуры карты нормалей используются для моделирования 3D освещения (см. normalTexture свойство) или используемый для генерации скоростных значений (см. SKVelocityFieldNode класс).

Можно создать карты нормалей двумя различными способами. Во-первых, можно взять существующую карту изображения и использовать ее для генерации карты нормалей. Набор Sprite фильтрует цветные данные в текстуре и затем использует его для генерации карты на основе пиксельного контраста. Также можно загрузить регулярный файл образа, но обработать его как карту нормалей. Чтобы сделать это, предоставьте текстуре 32-разрядный RGBx пиксельные данные. 8-разрядное целочисленное значение каждого компонента отображается на числе с плавающей точкой между значениями -1.0 и 1.0. Используйте a 0 представлять -1.0f, значение 127 представлять 0.0, и значение 255 представлять +1.0.

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

Этот класс не может быть разделен на подклассы.

Наследование


Соответствует


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


Swift

import SpriteKit

Objective C

@import SpriteKit;

Доступность


Доступный в OS X v10.9 и позже.
  • Создайте новый объект текстуры из файла образа, сохраненного в комплекте приложений.

    Объявление

    Swift

    convenience init!(imageNamed name: String)

    Objective C

    + (instancetype)textureWithImageNamed:(NSString *)name

    Параметры

    name

    Имя файла образа.

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

    Новый объект текстуры.

    Обсуждение

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

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создайте новый объект текстуры из объекта изображения.

    Объявление

    Swift

    convenience init(image image: NSImage)

    Objective C

    + (instancetype)textureWithImage:(NSImage *)image

    Параметры

    image

    Изображение.

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

    Новый объект текстуры.

    Обсуждение

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создайте новый объект текстуры из Кварца 2D изображение.

    Объявление

    Swift

    convenience init(CGImage image: CGImage!)

    Objective C

    + (instancetype)textureWithCGImage:(CGImageRef)image

    Параметры

    image

    Кварц 2D изображение (CGImageRef) объект. Для получения дополнительной информации посмотрите Кварц 2D Руководство по программированию и Ссылка CGImage.

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

    Новый объект текстуры.

    Обсуждение

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создает новую текстуру из подмножества существующей текстуры.

    Объявление

    Swift

    convenience init(rect rect: CGRect, inTexture texture: SKTexture)

    Objective C

    + (instancetype)textureWithRect:(CGRect)rect inTexture:(SKTexture *)texture

    Параметры

    rect

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

    texture

    Текстура для создания новой текстуры из.

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

    Новый объект текстуры.

    Обсуждение

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

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создает новую текстуру путем применения Базового фильтра Изображения к существующей текстуре.

    Объявление

    Swift

    func textureByApplyingCIFilter(_ filter: CIFilter) -> Self!

    Objective C

    - (instancetype)textureByApplyingCIFilter:(CIFilter *)filter

    Параметры

    filter

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

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

    Новый объект текстуры.

    Обсуждение

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создает новую текстуру из данных необработанного пикселя.

    Объявление

    Swift

    convenience init!(data pixelData: NSData!, size size: CGSize)

    Objective C

    + (instancetype)textureWithData:(NSData *)pixelData size:(CGSize)size

    Параметры

    pixelData

    NSData объект, содержащий растровые данные. Пиксели должны составить 32 бит/пкс, 8bpc (целое без знака) пиксельные данные RGBA. Компоненты цвета должны были быть уже умножены на альфа-значение.

    size

    Размер новой текстуры в точках.

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

    Новый объект текстуры.

    Обсуждение

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

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

    Объявление

    Swift

    convenience init!(data pixelData: NSData!, size size: CGSize, rowLength rowLength: UInt32, alignment alignment: UInt32)

    Objective C

    + (instancetype)textureWithData:(NSData *)pixelData size:(CGSize)size rowLength:(unsigned int)rowLength alignment:(unsigned int)alignment

    Параметры

    pixelData

    NSData объект, содержащий растровые данные. Пиксели должны составить 32 бит/пкс, 8bpc (целое без знака) пиксельные данные RGBA. Компоненты цвета должны были быть уже умножены на альфа-значение.

    size

    Размер новой текстуры в точках.

    rowLength

    Число байтов памяти для использования на строку битового массива.

    alignment

    Смещение между отдельными пикселями пиксельных данных. Указать 0 для плотно упакованных данных.

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

    Новый объект текстуры.

    Обсуждение

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создает новую текстуру из данных необработанного пикселя.

    Объявление

    Swift

    convenience init!(data pixelData: NSData!, size size: CGSize, flipped flipped: Bool)

    Objective C

    + (instancetype)textureWithData:(NSData *)pixelData size:(CGSize)size flipped:(BOOL)flipped

    Параметры

    pixelData

    NSData объект, содержащий растровые данные. Пиксели должны составить 32 бит/пкс, 8bpc (целое без знака) пиксельные данные RGBA. Компоненты цвета должны были быть уже умножены на альфа-значение.

    size

    Размер новой текстуры в точках.

    flipped

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

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

    Новый объект текстуры.

    Обсуждение

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создает текстуру карты нормалей путем анализа содержания существующей текстуры.

    Объявление

    Swift

    func textureByGeneratingNormalMap() -> Self!

    Objective C

    - (instancetype)textureByGeneratingNormalMap

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

    Новый объект текстуры, содержащий карту нормалей.

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создает текстуру карты нормалей путем анализа содержания существующей текстуры.

    Объявление

    Swift

    func textureByGeneratingNormalMapWithSmoothness(_ smoothness: CGFloat, contrast contrast: CGFloat) -> Self!

    Objective C

    - (instancetype)textureByGeneratingNormalMapWithSmoothness:(CGFloat)smoothness contrast:(CGFloat)contrast

    Параметры

    smoothness

    Число между 0.0 и 1.0 при указании, насколько текстура должна сглаживаться, прежде чем сгенерирована карта нормалей. Значение 0.0 средние значения, что текстура не сглаживается вообще прежде чем быть обработанным.

    contrast

    Значение раньше увеличивало эффект сгенерированной карты нормалей. Значение 1.0 указывает, что не применяется никакое увеличение.

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

    Новый объект текстуры, содержащий карту нормалей.

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создает новую текстуру, содержание которой процедурно сгенерировано направленные шумовые данные.

    Объявление

    Swift

    convenience init!(vectorNoiseWithSmoothness smoothness: CGFloat, size size: CGSize)

    Objective C

    + (instancetype)textureVectorNoiseWithSmoothness:(CGFloat)smoothness size:(CGSize)size

    Параметры

    smoothness

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

    size

    Размер новой текстуры в точках.

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

    Новая шумовая текстура.

    Обсуждение

    Шумовая текстура tileable с собой. Значения RGB, сохраненные в текстуре, могут использоваться в качестве направленных данных (XYZ). Альфа-значения также рандомизируются и могут использоваться в качестве данных величины при желании.

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Создает новую текстуру, содержание которой процедурно сгенерировано окрашенное шумовыми данными.

    Объявление

    Swift

    convenience init!(noiseWithSmoothness smoothness: CGFloat, size size: CGSize, grayscale grayscale: Bool)

    Objective C

    + (instancetype)textureNoiseWithSmoothness:(CGFloat)smoothness size:(CGSize)size grayscale:(BOOL)grayscale

    Параметры

    smoothness

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

    size

    Размер новой текстуры в точках.

    grayscale

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

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

    Новая шумовая текстура.

    Обсуждение

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • filteringMode filteringMode Свойство

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

    Объявление

    Swift

    var filteringMode: SKTextureFilteringMode

    Objective C

    @property(nonatomic) SKTextureFilteringMode filteringMode

    Обсуждение

    Возможные значения для этого свойства перечислены в “Texture Filtering Modes”. Значение по умолчанию SKTextureFilteringLinear.

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Размер текстуры.

    Объявление

    Swift

    func size() -> CGSize

    Objective C

    - (CGSize)size

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

    Размерности текстуры, измеренной в точках.

    Обсуждение

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

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

    Объявление

    Swift

    func textureRect() -> CGRect

    Objective C

    - (CGRect)textureRect

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

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

    Обсуждение

    Значение по умолчанию является прямоугольником, покрывающим всю текстуру (0,0) - (1,1). Вы не можете установить это значение непосредственно; для использования только части текстуры используйте textureWithRect:inTexture: метод для создания новой текстуры.

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • usesMipmaps usesMipmaps Свойство

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

    Объявление

    Swift

    var usesMipmaps: Bool

    Objective C

    @property(nonatomic) BOOL usesMipmaps

    Обсуждение

    Значение по умолчанию NOfalse. Если Вы устанавливаете это в YEStrue, Набор Sprite создает, множественно отображается для текстуры, когда это подготавливает текстуру к рендерингу. Множественно отображается приводят дополнительную память в рабочее состояние (обычно одна треть больше), но может повысить качество рендеринга и производительность, когда текстура сокращена в размере (такой как тогда, когда Вы сокращаете масштаб спрайта, представленного с помощью текстуры).

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Загрузите данные текстуры в память, вызвав обработчик завершения после того, как завершится задача.

    Объявление

    Swift

    func preloadWithCompletionHandler(_ completionHandler: (() -> Void)!)

    Objective C

    - (void)preloadWithCompletionHandler:(void (^)(void))completionHandler

    Параметры

    completionHandler

    Загружается блок, вызванный после данных текстуры.

    Обсуждение

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

    Если необходимо предварительно загрузить многократные текстуры сразу, используйте preloadTextures:withCompletionHandler: метод вместо этого.

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

  • Загрузите данные текстуры многократных текстур в память.

    Объявление

    Swift

    class func preloadTextures(_ textures: [AnyObject]!, withCompletionHandler completionHandler: (() -> Void)!)

    Objective C

    + (void)preloadTextures:(NSArray *)textures withCompletionHandler:(void (^)(void))completionHandler

    Параметры

    textures

    Массив SKTexture объекты.

    completionHandler

    Загружается блок, вызванный после всех текстур.

    Обсуждение

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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

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

    Объявление

    Swift

    enum SKTextureFilteringMode : Int { case Nearest case Linear }

    Objective C

    typedef enum SKTextureFilteringMode : NSInteger { SKTextureFilteringNearest, SKTextureFilteringLinear, } SKTextureFilteringMode;

    Константы

    • Nearest

      SKTextureFilteringNearest

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

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

    • Linear

      SKTextureFilteringLinear

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

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

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