해결된 질문
21.12.24 11:55 작성
·
799
1
bird 애니메이션 파트 강의 입니다.
for i in 1...birdTexture.textureNames.count
범위를 지정해주는 부분에서 오류가 납니다.
(오류 내용)
thread 1: Fatal error: Range requires lowerBound <= upperBound
1...제한 값(bird~count) 이 코드에서 오류가 나는데요 무슨 문제일까요
작성한 코드
func createBird() {
let birdTexture = SKTextureAtlas(named: "Bird")
let bird = SKSpriteNode(imageNamed: "bird")
bird.position = CGPoint(x: self.size.width / 2, y: self.size.height / 2)
bird.zPosition = 4
self.addChild(bird)
var aniArray = [SKTexture]()
for i in 1...birdTexture.textureNames.count {
aniArray.append(SKTexture(imageNamed: "bird\(i)"))
}
let flyingAnimation = SKAction.animate(with: aniArray, timePerFrame: 0.1)
bird.run(SKAction.repeatForever(flyingAnimation))
}
답변 1
0
2021. 12. 24. 15:44
오류의 내용은 lowerBound 가 upperBound 보다 작거나 같아야 되는데 그렇지 않다는 뜻입니다. lowerBound가 1인데 upperBound가 0이거나 nil이라서 나오는 오류 같습니다. 이런 경우 birdTexture에 값이 없을 가능성이 있는데요, 스프라이트 아틀라스에 이미지를 정확히 복사하셨는지 확인해 주세요.
잘 모르시겠으면 아래의 제 소스코드와 비교하면서 확인하시면 더 알기 쉬울 것 같습니다.
https://github.com/cliearl/SpritekitFlappyBirdLike
2021. 12. 26. 10:18
아틀라스 옵션이 없어서 일반 폴더로 에셋 파일들을 넣어줬는데요
아틀라스 옵션 찾고 다시 만들어줘서 넣어줬더니 해결됐습니다 감사합니다,