У меня есть пара спрайтов в быстрой игре, которые имеют одинаковые списки действий (технически [SKAction]). Все они находятся в разных точках последовательности действий, и мне нужно ранжировать их в порядке наиболее полного (с действием) до наименее полного. Как получить ход спрайта (или, по крайней мере, шаг действия, в котором он работает)? Предпочтительно, я хотел бы получить процент завершения для шага, в котором он включен.Swift: Проверка прогресса на SKActions
Ради образца кода:
let sprite1 = SKShapeNode.init(rectOf: CGSize.init(width: 20, height: 20), cornerRadius: 5)
let sprite2 = SKShapeNode.init(rectOf: CGSize.init(width: 20, height: 20), cornerRadius: 5)
let sprite3 = SKShapeNode.init(rectOf: CGSize.init(width: 20, height: 20), cornerRadius: 5)
sprite1.position = CGPoint(x: -100, y: 0)
sprite2.position = CGPoint(x: 0, y: 0)
sprite3.position = CGPoint(x: 100, y: 0)
let sequence : [SKAction] = [SKAction.move(by: CGVector(dx: 50, dy: 0), duration: 1.5),
SKAction.rotate(byAngle: CGFloat(M_PI/2), duration: 1.0),
SKAction.move(by: CGVector(dx: 0, dy: 50), duration: 1.5),
SKAction.rotate(byAngle: CGFloat(M_PI/2), duration: 1.0),
SKAction.move(by: CGVector(dx: -50, dy: 0), duration: 1.5)]
sprite1.run(SKAction.sequence(sequence))
//wait 1 second
sprite2.run(SKAction.sequence(sequence))
//wait another second
sprite3.run(SKAction.sequence(sequence))
var spriteAccord : [SKSpriteNode] = //insert ranking code
Пожалуйста, ваши реальный код, это не компилируется – Eric
вам нужно ранжировать в зависимости от времени, или какие действия они находятся в – Knight0fDragon
Это будет то, на что они направлены (поскольку я забыл упомянуть, что они могут работать с разной скоростью). Поэтому я собираюсь взять словарь времени начала и использовать разные скорости для вычисления «расстояния» вдоль последовательности и использовать пройденное расстояние, чтобы получить рейтинг –