2016-05-29 76 views
0

我不明白什麼是錯的。我編寫的代碼,代碼中沒有錯誤和問題,終端中沒有消息,圖集包含.png圖像。 所以,當我編譯我的代碼時,紋理不顯示。我能看到的只有紅十字。我如何解決這個問題?紋理圖集不起作用

enter image description here

這是我的代碼:

import SpriteKit 

class GameScene: SKScene { 


    override func didMoveToView(view: SKView) { 
     self.backgroundColor = UIColor(red: 0.4, green: 0.6, blue: 0.5, alpha: 1.0) 

     let bee = SKSpriteNode() 
     bee.position = CGPoint(x: 250, y: 250) 
     bee.size = CGSize(width: 40, height: 40) 
     self.addChild(bee) 

     let beeAtlas = SKTextureAtlas(named: "bee") 
     let beeFrames : [SKTexture] = 
     [beeAtlas.textureNamed("c1.png"), 
     beeAtlas.textureNamed("c2.png")] 

     let flyAction = SKAction.animateWithTextures(beeFrames, timePerFrame: 0.5) 
     let beeAction = SKAction.repeatActionForever(flyAction) 
     bee.runAction(beeAction) 
} 

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    } 

} 

回答

0

我現在在我的電腦上,我寫這段代碼,讓我知道,如果它的工作原理:

import SpriteKit 

class GameScene: SKScene { 


var bee = SKSpriteNode() 
var beeAtlas = SKTextureAtlas() 
var beeFrames = [SKTexture]() 

override func didMoveToView(view: SKView) { 
    self.backgroundColor = UIColor(red: 0.4, green: 0.6, blue: 0.5, alpha: 1.0) 

    beeAtlas = SKTextureAtlas(named: "bee") 

    for i in 1...beeAtlas.textureNames.count { 
     var name = "c\(i).png" 
     beeFrames.append(SKTexture(imageNamed: name)) 
    } 

    bee = SKSpriteNode(imageNamed: beeAtlas.textureNames[0] as! String) 
    bee.position = CGPoint(x: 250, y: 250) 
    bee.size = CGSize(width: 40, height: 40) 

    bee.runAction(SKAction.repeatActionForever(SKAction.animateWithTextures(beeFrames, timePerFrame: 0.5))) 

    self.addChild(bee) 
} 
} 
+0

在第一次當我遇到這個問題時,我確實喜歡你的視頻,不幸的是它並沒有幫助我。我可以嘗試其他什麼嗎? – VVVV

+0

你可以加上這一行:print(bee)在「self.addChild(bee)」之後,然後在這裏寫下控制檯說的什麼? – Jules

+0

另一個原因可能是您使用的圖像分辨率與您正在使用的模擬器不兼容。無論如何,我會嘗試重新啓動模擬器(點擊模擬器窗口後,左上角選擇模擬器 - >重置內容和設置) – Jules