Как быстро запустить последовательности SK - PullRequest
0 голосов
/ 26 мая 2020

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

func fadeOutInfoText(){

    infoLabel1.removeAllActions()
    infoLabel2.removeAllActions()
    speechIcon.removeAllActions()

    let wait:SKAction = SKAction.wait(forDuration: 0.5)
    let fade:SKAction = SKAction.fadeAlpha(to: 0, duration: 0.5)
    let run:SKAction = SKAction.run {

        self.infoLabel1.text = ""
        self.infoLabel2.text = ""
        self.infoLabel1.alpha = 1
        self.infoLabel2.alpha = 1
        self.speechIcon.alpha = 1
        self.speechIcon.isHidden = true
    }


    let seq:SKAction = SKAction.sequence([wait,fade,run])
    let seq2:SKAction = SKAction.sequence([wait,fade])

    infoLabel1.run(seq)
    infoLabel2.run(seq2)
    speechIcon.run(seq2)   

}

Ответы [ 2 ]

1 голос
/ 27 мая 2020

ПРИМЕЧАНИЕ: это будет комментарий (пока недостаточно репутации для этого :)

Построчное выполнение приведенного выше кода (и добавление узлов в пустую сцену) дает то, что кажется быть желаемым результатом. Предположительно, вы не вызываете эту функцию из метода сцены update(_:), поскольку это не позволяет ярлыкам и значку речи делать что-либо, поскольку действия удаляются до того, как сцена выполнит действия (см. здесь ). Убедитесь, что вы не удаляете все действия и не меняете альфа-канал меток, прежде чем этот набор действий можно будет завершить где-то еще.

0 голосов
/ 26 мая 2020

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

    let sprite = SKSpriteNode(imageNamed:"Spaceship")

    let scale = SKAction.scale(to: 0.1, duration: 0.5)
    let fade = SKAction.fadeOut(withDuration: 0.5)
    let sequence = SKAction.sequence([scale, fade])

    sprite.run(sequence)

Сообщите мне, полезно это или нет.

...