Назначить SKAction, возвращенный при запуске play() на SKAudioNode?

Документы, похоже, предполагают, что запуск игры на SKAudioNode возвращает SKAction

play () Создает действие, которое сообщает звуковому узлу о начале воспроизведения.

class func play() -> SKAction

Так что моя крошечная логика говорит мне, что я могу получить это возвращенное действие и назначить его переменной или константе следующим образом:

var mySoundAction = mySoundNode.run(SKAction.play())

Но Xcode говорит мне, что я идиот и понятия не имею, что я делаю, когда пытаюсь сделать это:

self.run(mySoundAction)

Это говорит мне, что он не может преобразовать тип пустоты в тип SKAction.

Что я делаю неправильно? Насколько я заблуждаюсь в своих целях, чтобы иметь название действия для чего-то вроде этого?

1 ответ

Решение
SKAction.play()

возвращает SKAction, а также

mySoundNode.run(SKAction.play())

запускает это действие на mySoundNode, run() метод возвращает Void ("ничего"), так что с

var mySoundAction = mySoundNode.run(SKAction.play())

вы запускаете действие "play" на узле и назначаете () в var mySoundAction, Что вы, возможно, имели в виду

var mySoundAction = SKAction.play()
// ... 
self.run(mySoundAction)
Другие вопросы по тегам