2016-09-11 48 views
1

我正在製作一個簡單的動畫,熊來回移動。我的問題是,我的代碼無法識別我的atlas文件夾(BearImages.atlas)或不能識別圖像。我不知道我做錯了什麼,我也搞不懂。你可以向我解釋,因爲我5歲,爲什麼xCode不能識別我的文件夾或我的圖像?Swift Sprite動畫:xCode不會讀取我的atlas文件夾

截圖:

Click to open Image

我的代碼:

import SpriteKit 

class GameScene: SKScene { 

    var bear : SKSpriteNode! 
    var bearWalkingFrames : [SKTexture]! 

    override func didMoveToView(view: SKView) { 

     backgroundColor = (UIColor.blackColor()) 

     let bearAnimatedAtlas = SKTextureAtlas(named: "BearImages") 
     var walkFrames = [SKTexture]() 
     print(bearAnimatedAtlas) 

     let numImages = bearAnimatedAtlas.textureNames.count 
     for var i=1; i<=numImages/2; i++ { 
      let bearTextureName = "bear\(i)" 
      walkFrames.append(bearAnimatedAtlas.textureNamed(bearTextureName)) 
     } 

     bearWalkingFrames = walkFrames 

     let firstFrame = bearWalkingFrames[0] 
     bear = SKSpriteNode(texture: firstFrame) 
     bear.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) 
     addChild(bear) 

     walkingBear() 
    } 

    func walkingBear() { 
     //This is our general runAction method to make our bear walk. 
     bear.runAction(SKAction.repeatActionForever(
      SKAction.animateWithTextures(bearWalkingFrames, 
       timePerFrame: 0.1, 
       resize: false, 
       restore: true)), 
         withKey:"walkingInPlaceBear") 
    } 

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

    override func update(currentTime: CFTimeInterval) { 
    } 
} 

謝謝!

+0

你是如何創建這個地圖集的? – Knight0fDragon

回答

0

這可能不是解決您的問題,但它可能是最有可能的原因...

  1. 點擊你的項目「pierro peguin learning」左側
  2. 點擊Build Phases項目瀏覽器窗口中標籤
  3. 根據Copy Bundle Resources部分,確保BearImages.atlas
  4. 如果不是,用加號按鈕將其添加
+0

它在那裏,是的,它仍然不起作用... – GeorGios

+0

你的代碼崩潰了嗎?你的atlas文件夾中的圖像是什麼文件格式? –

+0

png。不,我的代碼不會崩潰,但會顯示帶有白色背景的X圖像 – GeorGios

0

你的代碼似乎找到,所以我認爲它是有一定的映像名稱或您未在圖冊文件夾複製到您的項目(您剛纔提到它)

你應該做的第一個事情就是使用Xcode的7個新地圖集功能將您的圖集存儲在資產目錄中,而不是將atlas文件夾複製到項目中。先嚐試一下,看看它是否有所作爲。

蘋果還建議這種方法的性能和更好的組織。

如果這不起作用....

1)你的圖像格式是什麼?他們通常應該採用PNG格式。

2)你能顯示atlas文件夾的內容嗎?

3)你沒有看到任何動畫,或者你是否得到紅色X的白色方塊?

一般來說,並非特定於您的問題,您爲什麼要爲圖像創建2個數組? 只需使用bearWalkingFrames數組並直接追加圖像即可。看起來很複雜,創建第二個數組(walkFrames)追加圖像,並將bearWalkingFrames設置爲該數組。