ノードを作成してシーンに追加するたびに、forループが10回実行されます。しかし、私は、各ノードの追加(ノードの追加、秒の追加、ノードの追加、秒の待機など)に遅れがあるようにしたい。forループ内でSKActionの完了を待つ
ただし、最初の1秒後には、同時に追加されます。どのようにして、追加されている各ノードの間に秒間待機するという、この望ましい効果を達成できますか?ここで
は私のコードです:
EDIT:
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