SKTransition
SKTransition
объект используется для выполнения анимированного перехода между a SKScene
возразите уже представленный SKView
возразите и новая входящая сцена.
Сцены являются основными стандартными блоками игр. Как правило, Вы разрабатываете автономные сцены для частей Вашей игры, и затем переход между этими сценами по мере необходимости. Например, Вы могли бы создать различные классы сцены для представления любых из следующих понятий:
Загружающаяся сцена для отображения, в то время как загружается другое содержание
Сцена главного меню для выбора, какой играют пользователь, хочет играть
Сцена для конфигурирования подробных данных определенного вида игры пользователь выбрала
Сцена, обеспечивающая геймплей
Когда геймплей заканчивается, сцена вывела на экран
Когда Вы представляете новую сцену в представлении, уже представляющем сцену, у Вас есть опция использования перехода для анимации изменения от старой сцены до новой сцены. Используя переход обеспечивает непрерывность так, чтобы изменение сцены было не совсем настолько резким.
Переход между двумя сценами
Как правило, Вы переходите к новой сцене на основе геймплея или ввода данных пользователем. Например, если пользователь нажимает кнопку в Вашей сцене главного меню, Вы могли бы перейти к новой сцене для конфигурирования матча, который проигрыватель хочет сыграть. Переход к новой сцене показывает, как Вы могли бы реализовать обработчик событий в спрайте. Обработчик сначала выполняет анимацию на себе для выделения кнопки (не описанный здесь). Затем это создает объект перехода и новую сцену. Наконец, это вызывает представление для представления новой сцены. Переход означает, что анимировано это изменение.
- (void)mouseUp:(NSEvent *)theEvent
{
[self runAction: self.buttonPressAnimation];
SKTransition *reveal = [SKTransition revealWithDirection:SKTransitionDirectionDown duration:1.0];
GameConfigScene *newScene = [[GameConfigScene alloc] initWithSize: CGSizeMake(1024,768)]];
[self.scene.view presentScene: newScene transition: reveal];
}
Когда переход происходит, свойство сцены сразу обновляется для указания на новую сцену. Затем анимация происходит. Наконец, сильная ссылка к старой сцене удалена. Если необходимо иметь в наличии сцену после того, как переход происходит, приложение должно сохранить свою собственную сильную ссылку к старой сцене.
При организации игры может быть полезно создать схему, показывающую все сцены в игре, переходы, происходящие между сценами и данными, которые должны быть переданы новой сцене, когда происходит переход. В отличие от контроллеров представления в iOS, Набор Sprite не обеспечивает встроенный механизм для передающих данных между сценами. Если необходимо предоставить данные во время перехода сцены, необходимо реализовать собственный механизм для конфигурирования новой сцены. Как правило, это означает определять пользовательские методы и свойства на каждой сцене.
Конфигурирование, ли игра анимаций во время перехода
pausesIncomingScene
и pausesOutgoingScene
свойства на объекте перехода определяют, какие анимации играются во время перехода. По умолчанию обе сцены приостанавливаются во время перехода. Однако Вы могли бы хотеть включить анимацию на любой сцене во время перехода. Например, рассмотрите код снова в Переходе к новой сцене. Поскольку кнопка собирается выполнить действие, этот код ожидает, что будет анимирована исходящая сцена. Но возможно входящая сцена не должна анимировать свое содержание, пока не завершается переход. Добавление кода в Приостанавливающейся обработке кадра во время перехода имеет желаемый эффект.
reveal.pausesOutgoingScene = YES;
reveal.pausesIncomingScene = NO;
Оператор импорта
Swift
import SpriteKit
Objective C
@import SpriteKit;
Доступность
Доступный в OS X v10.9 и позже.
-
Создает крест, исчезают переход.
Объявление
Swift
class func crossFadeWithDuration(_
sec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)crossFadeWithDuration:(NSTimeInterval)
sec
Параметры
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, где новая сцена появляется как пара заключительных горизонтальных дверей.
Объявление
Swift
class func doorsCloseHorizontalWithDuration(_
sec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)doorsCloseHorizontalWithDuration:(NSTimeInterval)
sec
Параметры
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, где новая сцена появляется как пара закрытия вертикальных дверей.
Объявление
Swift
class func doorsCloseVerticalWithDuration(_
sec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)doorsCloseVerticalWithDuration:(NSTimeInterval)
sec
Параметры
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, где новая сцена появляется как пара вводных горизонтальных дверей.
Объявление
Swift
class func doorsOpenHorizontalWithDuration(_
sec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)doorsOpenHorizontalWithDuration:(NSTimeInterval)
sec
Параметры
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, где новая сцена появляется как пара открытия вертикальных дверей.
Объявление
Swift
class func doorsOpenVerticalWithDuration(_
sec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)doorsOpenVerticalWithDuration:(NSTimeInterval)
sec
Параметры
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, где предыдущая сцена исчезает как пара вводных дверей. Новая сцена запускается в фоновом режиме и придвигается поближе, когда открываются двери.
Объявление
Swift
class func doorwayWithDuration(_
sec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)doorwayWithDuration:(NSTimeInterval)
sec
Параметры
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, сначала исчезающий к постоянному цвету и затем исчезающий к новой сцене.
Объявление
Swift
class func fadeWithColor(_
color
: NSColor, durationsec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)fadeWithColor:(NSColor *)
color
duration:(NSTimeInterval)sec
Параметры
color
Цвет для использования в качестве исчезнуть цвета.
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, сначала исчезающий к черному цвету и затем исчезающий к новой сцене.
Объявление
Swift
class func fadeWithDuration(_
sec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)fadeWithDuration:(NSTimeInterval)
sec
Параметры
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, где эти две сцены зеркально отражаются через горизонтальную строку, пробегающую центр представления.
Объявление
Swift
class func flipHorizontalWithDuration(_
sec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)flipHorizontalWithDuration:(NSTimeInterval)
sec
Параметры
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, где эти две сцены зеркально отражаются через вертикальную строку, пробегающую центр представления.
Объявление
Swift
class func flipVerticalWithDuration(_
sec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)flipVerticalWithDuration:(NSTimeInterval)
sec
Параметры
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, где новая сцена приближается поверх старой сцены.
Объявление
Swift
class func moveInWithDirection(_
direction
: SKTransitionDirection, durationsec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)moveInWithDirection:(SKTransitionDirection)
direction
duration:(NSTimeInterval)sec
Параметры
direction
Направление перемещения. Возможные значения описаны в Направлениях Перехода.
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, где новая сцена приближается, продвигая старую сцену из представления.
Объявление
Swift
class func pushWithDirection(_
direction
: SKTransitionDirection, durationsec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)pushWithDirection:(SKTransitionDirection)
direction
duration:(NSTimeInterval)sec
Параметры
direction
Направление нажатия. Возможные значения описаны в Направлениях Перехода.
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, куда старая сцена перемещается из представления, показывая новую сцену под ним.
Объявление
Swift
class func revealWithDirection(_
direction
: SKTransitionDirection, durationsec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)revealWithDirection:(SKTransitionDirection)
direction
duration:(NSTimeInterval)sec
Параметры
direction
Направление раскрытия. Возможные значения описаны в Направлениях Перехода.
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Создает переход, использующий Базовый фильтр Изображения для выполнения перехода.
Объявление
Swift
init(CIFilter
filter
: CIFilter, durationsec
: NSTimeInterval) -> SKTransitionObjective C
+ (SKTransition *)transitionWithCIFilter:(CIFilter *)
filter
duration:(NSTimeInterval)sec
Параметры
filter
Базовый фильтр Изображения.
sec
Продолжительность перехода.
Возвращаемое значение
Новый переход.
Обсуждение
Фильтр, используемый для выполнения перехода, должен быть фильтром, требующим только двух параметров изображения (
inputImage
,inputTargetImage
) и генерирует единственное изображение (outputImage
). Переход автоматически устанавливает фильтрinputImage
,inputTargetImage
, иinputTime
свойства. Необходимо установить любые другие свойства фильтра прежде, чем создать переход.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
pausesIncomingScene pausesIncomingScene
СвойствоБулево значение, определяющее, приостанавливается ли входящая сцена во время перехода.
Объявление
Swift
var pausesIncomingScene: Bool
Objective C
@property(nonatomic) BOOL pausesIncomingScene
Обсуждение
Значение по умолчанию
YES
true
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
pausesOutgoingScene pausesOutgoingScene
СвойствоБулево значение, определяющее, приостанавливается ли исходящая сцена во время перехода.
Объявление
Swift
var pausesOutgoingScene: Bool
Objective C
@property(nonatomic) BOOL pausesOutgoingScene
Обсуждение
Значение по умолчанию
YES
true
.Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-
Для некоторых переходов, направления, в котором выполняется переход.
Объявление
Swift
enum SKTransitionDirection : Int { case Up case Down case Right case Left }
Objective C
typedef NS_ENUM (NSInteger, SKTransitionDirection ) { SKTransitionDirectionUp, SKTransitionDirectionDown, SKTransitionDirectionRight, SKTransitionDirectionLeft, };
Константы
-
Up
SKTransitionDirectionUp
Переход восстанавливает работоспособность.
Доступный в OS X v10.9 и позже.
-
Down
SKTransitionDirectionDown
Переход теряет работоспособность.
Доступный в OS X v10.9 и позже.
-
Right
SKTransitionDirectionRight
Переход идет право.
Доступный в OS X v10.9 и позже.
-
Left
SKTransitionDirectionLeft
Переход идет оставленный.
Доступный в OS X v10.9 и позже.
Оператор импорта
Objective C
@import SpriteKit;
Swift
import SpriteKit
Доступность
Доступный в OS X v10.9 и позже.
-