2015-04-06 2 views
5

У меня есть SKNode, который является баром нагрузки. Предполагается, что этот стержень будет сжиматься справа налево. Для ведения этого я использую следующий код:SpriteKit - масштабировать узел до X справа налево

let loadBarNode = self.childNodeWithName("loadBar") 

    if loadBarNode != nil{ 

     let countdown = SKAction.scaleXTo(0, duration: 3) 
     loadBarNode?.runAction(countdown) 

    } 

Когда я запускаю этот код, это происходит:

What happens when code runs.

Я хотел бы знать, как уменьшить форму справа налево, как это:

It's supposed to look like this.

Любая помощь приветствуется!

ответ

4

Я считаю, что более простым решением является изменение привязки вашего узла.

loadBarNode.anchorPoint = CGPointMake(0.0, 0.5) 

Масштабирование основано на привязке вашего узла, и это приведет к его расширению вправо.

3

Сделать последовательность SKAction, которая имеет свои действия, обратный отсчет, плюс SKAction, который перемещает ваш X.

класс Func moveToX (_ х: CGFloat, продолжительность сек: NSTimeInterval) -> SKAction

Так как ваш нагрузочный стержень сжимается, вы хотите компенсировать свой X на половину сокращения.

+0

Это действительно хорошее и простое решение. +1 – sangony

+0

@sangony На самом деле, хотя, подумав об этом снова ... Им нужно работать одновременно. Так будет работать последовательность? Но все же, спасибо за комплимент, хороший сэр! – Roecrew

+1

Используйте блок для одновременного использования. – sangony

Смежные вопросы