В настоящее время я делаю игру на Xcode 11, у меня возникла проблема, при которой мой спрайт сразу появляется сразу при старте, даже через их задержку ожидания, но после первого появления спрайты появляются при их текущее время. Как я могу сделать так, чтобы спрайты не появлялись в течение 3 секунд после начала сцены. Любая помощь будет принята с благодарностью.
На прилагаемой фотографии показано, что происходит в начале игры.
Я приложил часть своего кода для одного из спрайты по настройке похожи друг на друга.
//Setup Bird
func setupBird() {
bird = SKSpriteNode(imageNamed: "bird-1")
bird.name = "Bird"
bird.zPosition = 20.0
bird.setScale(1.5)
let birdHeight = bird.frame.height
let random = CGFloat.random(min: -birdHeight, max: birdHeight*2.0)
bird.position = CGPoint(x: cameraRect.maxX + bird.frame.width, y: size.height/2.0 + birdHeight + random)
bird.physicsBody = SKPhysicsBody(circleOfRadius: bird.size.width/2.0)
bird.physicsBody!.affectedByGravity = false
bird.physicsBody!.isDynamic = false
bird.physicsBody!.categoryBitMask = PhysicsCategory.Bird
bird.physicsBody!.contactTestBitMask = PhysicsCategory.Player
addChild(bird)
bird.run(.sequence([.wait(forDuration: 15, withRange: 5), .removeFromParent()]))
//Animation For Birds
var textures: [SKTexture] = []
for i in 1...3 {
textures.append(SKTexture(imageNamed: "bird-\(i)"))
}
bird.run(.repeatForever(.animate(with: textures, timePerFrame: 0.15)))
}
func spawnBird() {
let random = CGFloat.random(min: 15.0, max: 30.0)
run(.repeatForever(.sequence([
.wait(forDuration: TimeInterval(random)),
.run { [weak self] in
self?.setupBird()
}
])))
}