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

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

Разработчик

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

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

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

SKCropNode

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


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


Swift

import SpriteKit

Objective C

@import SpriteKit;

Доступность


Доступный в iOS 7.0 и позже.

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

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

Узел обрезки рисунка 1A, выполняющий работу маскирования image: ../Art/ss4-crop_2x.png

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

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

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

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

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

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

Перечисление 1Creating узел обрезки
  • SKCropNode *cropNode = [[SKCropNode alloc] init];
  • cropNode.maskNode = [[SKSpriteNode alloc] initWithImageNamed:@"cockpitMask"];
  • [cropNode addChild: sceneContentNode];
  • [self addChild:cropNode];
  • [self addChild:gameControlNodes];

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

  • maskNode Свойство

    Узел раньше определял маску узла обрезки.

    Объявление

    Swift

    var maskNode: SKNode?

    Objective C

    @property(nonatomic, retain) SKNode *maskNode

    Обсуждение

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

    Когда содержание узла обрезки представляется, узел обрезки сначала вовлекает свою маску в частный буфер. Затем это представляет свои дочерние элементы. При рендеринге его дочерних элементов каждый пиксель проверяется по соответствующему пикселю в маске. Если пиксель в маске имеет альфа-значение меньше чем 0,05, пиксель изображения кашируется. Любой пиксель, не представленный узлом маски, автоматически кашируется.

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

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

    Objective C

    @import SpriteKit;

    Swift

    import SpriteKit

    Доступность

    Доступный в iOS 7.0 и позже.