SKAction отображает одно изображение в течение продолжительного времени?

SKAction *ghostAnimationAction = 
[SKAction animateWithTextures:ghostFrames timePerFrame:0.1];

SKAction *ghostDelayAction = 
[SKAction animateWithTextures:@[[SKTexture textureWithImageNamed:@"Ghost_"]]     
timePerFrame:1.0];

SKAction *ghostAnimationSequence = 
[SKAction sequence:@[ghostAnimationAction, ghostDelayAction]];

SKAction *repeatGhostAnimationSequence = 
[SKAction repeatActionForever:ghostAnimationSequence];

У меня есть анимированная последовательность кадров, состоящая из NSMutableArray из SKTexture объектов. После того, как эта последовательность воспроизведена, я хочу свернуть неподвижный кадр на секунду, прежде чем повторить все. Приведенный выше код работает, но единственный способ, который я могу найти, чтобы указать длительность кадра, — это использовать animateWithTextures:timePerFrame: и предоставить один массив текстур. Есть ли другой способ заставить SKAction отображать одно изображение в течение времени, которое мне не хватает.


person fuzzygoat    schedule 26.09.2013    source источник
comment
Извините за форматирование, поле кода не прокручивалось, а просто обрезало текст, не знаю, почему это работало раньше.   -  person fuzzygoat    schedule 26.09.2013


Ответы (1)


Вы можете создать новый SKAction, включающий оба этих действия. См. раздел руководства по программированию Sprite Kit под названием 'Создание действий, запускающих другие действия' здесь Добавление действий к узлам

Взгляните на член SKAction waitForDuration: вы также можете избежать передачи одной текстуры таким образом. Пусть первый SKAction запустит вашу анимацию, а второй SKAction — waitForDuration. Затем закрывающий SKAction выполняет эти два действия вечно или так долго, как это необходимо.

person Skill M2    schedule 26.09.2013
comment
Ах, waitForDuration: звучит как то, что мне нужно, я посмотрю. Очень признателен. - person fuzzygoat; 26.09.2013