[英]Swift array: fatal error index out of range
我试图让动画在 Swift 中工作,但我收到一个错误消息:
致命错误 索引超出范围
这是我正在使用的代码:
import SpriteKit
import GameplayKit
class GameScene: SKScene {
var Player = SKSpriteNode()
var TextureAtlas = SKTextureAtlas()
var TextureArray = [SKTexture]()
override func didMove( to view: SKView) {
TextureAtlas = SKTextureAtlas(named: "images")
for i in 1...TextureAtlas.textureNames.count{
var Name = "front_\(i).png"
TextureArray.append(SKTexture(imageNamed: Name))
}
Player = SKSpriteNode(imageNamed: TextureAtlas.textureNames[0] as! String)
Player.size = CGSize(width: 100, height: 150)
Player.position = CGPoint(x: self.size.width, y: self.size.height)
self.addChild(Player)
backgroundColor = (UIColor.cyan())
}
func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
Player.run(SKAction.repeatForever(SKAction.animate(with: TextureArray, timePerFrame: 1.5)))
}
override func update(_ currentTime: CFTimeInterval) {
}
}
当您调用Player = SKSpriteNode(imageNamed: TextureAtlas.textureNames[0] as! String)
时, TextureAtlas.textureNames
为空。 当您尝试从空数组中提取某些内容时会发生崩溃。 如果这是永远不应该为空的东西,那么您需要弄清楚为什么它是空的并修复它。 否则,您可以默认为内联空白字符串:
Player = SKSpriteNode(imageNamed: TextureAtlas.textureNames[0] as? String ?? "")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.