2016-07-18 8 views
0

私は迅速に動作するようにアニメーションを取得しようとしていますが、私が言うエラーが出るのうち致命的なエラーインデックス:範囲ここ 外の致命的なエラーインデックスは、私が使用していますコードです:Xcodeの8 SWIFT IOS:範囲

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) { 

    } 
} 
+0

アウトライン境界のインデックスはどのラインから出力されますか? – keithbhunter

+0

Player = SKSpriteNode(imageNamed:TextureAtlas.textureNames [0] as!String)が問題のようです – void00

+3

暗闇の中で撮影しましたが、アトラス画像は0または1で始まりますか?この行を参照してください: 'i in 1 ... TextureAtlas.textureNames.count'、' i in 0 ..

答えて

1

TextureAtlas.textureNamesは、Player = SKSpriteNode(imageNamed: TextureAtlas.textureNames[0] as! String)に電話すると空です。空の配列から何かを引き出しようとすると、クラッシュが発生します。これが決して空であってはならないものなら、それがなぜ空であるのか把握して修正する必要があります。それ以外の場合は、空白の文字列をデフォルトでインラインで使用することができます。

Player = SKSpriteNode(imageNamed: TextureAtlas.textureNames[0] as? String ?? "") 
関連する問題