У меня есть несколько кнопок (SKSpriteNodes), которые я пытаюсь прокрутить и анимировать, с небольшой задержкой между ними. Мой код компилируется, но когда я его запускаю - я получаю только белый экран и сбой с этой ошибкой: «Сообщение от отладчика: завершено из-за проблемы с памятью». Вот мой код:Swift/SpriteKit: Анимация нескольких кнопок с небольшой задержкой между ними
var sequence = SKAction.sequence([animationUp, animationDown])
runAction(SKAction.repeatActionForever(SKAction.sequence([
SKAction.runBlock({
button1.runAction(sequence)
SKAction.waitForDuration(0.5)
button2.runAction(sequence)
SKAction.waitForDuration(0.5)
button3.runAction(sequence)
SKAction.waitForDuration(0.5)
}),
])))
Так что я пытаюсь сделать это анимация вверх/вниз на каждой кнопке Я рисунок на экран, с 0,5 секунды задержки между каждой кнопки. Анимация должна выполняться вечно до тех пор, пока я не изменю текущий экран. У меня не было проблем с анимацией этих кнопок одновременно, но я бы очень хотел добавить равномерную задержку, чтобы они не все одновременно оживляли. Есть идеи?
способ использования последовательности SKAction совершенно неправильно. Вы понимаете, что вы повторяете блок навсегда? Повторяющееся действие должно иметь немедленную продолжительность. Согласно документам, SKAction.runBlock имеет мгновенный эффект. Это то же самое, что в то время как (1) {сделать что-то} – Whirlwind
Ну, это не то, как я был _using_ моей последовательностью SKAction, это именно то, что я пытался сделать, но не мог понять, поэтому отправляю свой вопрос в первую очередь. – user1547019
Ну, вы жаловались на проблемы с памятью. Повторение этого блока кода навсегда было причиной. О принял ответ ... Это может работать для вас, но в зависимости от того, как кнопки объявляются (локальные переменные или свойство), вы можете столкнуться с сильными вопросами опорного цикла. – Whirlwind