2016-05-29 5 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

Другой причиной может быть то, что вы используете изображение с разрешением, которое не соответствует используемому имитатору. Во всяком случае, я бы попытался перезапустить симулятор (после нажатия на окне симулятора, в верхнем левом углу выберите Simulator -> Reset content and settings) – Jules

Смежные вопросы