노드를 만들고 장면에 추가 할 때마다 10 회 실행되는 for 루프가 있습니다. 그러나 추가 할 각 노드 사이에 지연이 있기를 원합니다 (노드 추가, 초 대기, 노드 추가, 초 대기 등)for 루프 내에서 SKAction 완료 대기
그러나 처음 1 초 후 모든 10 개의 노드 동시에 추가됩니다. 추가되는 각 노드 사이에서 잠깐 기다리면서 원하는 효과를 얻으려면 어떻게해야합니까?
이편집 :
func createText(correct: Bool) {
let text = SKNode()
var line: String!
addChild(text)
if correct {
line = (GKRandomSource.sharedRandom().arrayByShufflingObjectsInArray(happyLines) as! [String])[0]
} else {
line = (GKRandomSource.sharedRandom().arrayByShufflingObjectsInArray(sadLines) as! [String])[0]
}
var xPos = self.frame.midX + 300
var yPos = self.frame.midY
var spaces = 1
// For each character in sentence, create a node of it
for character in line.characters {
runAction(SKAction.waitForDuration(1.0)) {
if spaces == 4 {
spaces = 0
print("space")
xPos = self.frame.midX + 300
yPos -= 30
}
xPos += 10
if character != " " {
let letter = SKLabelNode(fontNamed: GameScene.fontName)
letter.fontSize = 14 * GameScene.fontScale
letter.position = CGPoint(x: xPos, y: yPos)
letter.text = String(character)
text.addChild(letter)
} else {
spaces += 1
xPos += 10
}
}
}
runAction(SKAction.waitForDuration(2.0)) {
text.removeAllChildren()
text.removeFromParent()
}
}
for 루프에서 동작 시퀀스 (wait, block, wait, block ...)를 작성하십시오. 이 방법으로 노드 (문자) 당 블록을 만듭니다. 더 많은 정보가 필요하면 알려주세요. – Whirlwind