2017-07-24 3 views
1

La méthode SKAction.animate n'anime pas correctement comment puis-je la faire fonctionner correctement.SKAction.animate avec la méthode SKTextureAtlas ne pas animer

Exemple méthode d'animation:

let textureAtlas = SKTextureAtlas(named: "example") 
    var textureArray = [SKTexture]() 
    var frames:[SKTexture] = [] 
    for index in 1 ... 4 { 
     let textureName = "example_\(index)" 
     let texture = textureAtlas.textureNamed(textureName) 
     frames.append(texture) 
     textureArray = frames 
     print("worked") 
    } 
    let animate = SKAction.animate(with: textureArray, timePerFrame: 0.01) 
    let forever = SKAction.repeatForever(animate) 
    self.run(forever) 

son impression « travaillé » mais dans ma scène son montrant l'image de X rouge que vous obtenez lorsque SpriteKit ne peut pas trouver l'image demandée. Y at-il quelque chose que je fais mal?

merci à l'avance!

Répondre

0

N'utilisez pas SKTextureAtlas pour cela.

Essayez:

Swift 3:

var textureArray = [SKTexture]() 
    for index in 1 ... 4 { 
     let textureName = "example_\(index)" 
     let texture = SKTexture(imageNamed: textureName) 
     textureArray.append(texture) 
    } 
    let animate = SKAction.animate(with: textureArray, timePerFrame: 0.01) 
    let forever = SKAction.repeatForever(animate) 
    self.run(forever) 
+1

il fonctionne très bien! Merci beaucoup!!! – Anonymous

+0

C'est un mauvais conseil, ils devraient corriger leur atlas de texture et l'utiliser. Les Atlas de textures sont conçus pour réduire l'empreinte mémoire d'une application. – Knight0fDragon

+0

@ Knight0fDragon je ne suis pas d'accord, pouvez-vous télécharger un exemple s'il vous plaît? – Maetschl

0

Le X rouge signifie que votre atlas de texture n'est pas correctement configuré, vérifiez votre dossier xcassets pour vous assurer que vos textures sont configurés.

Il devrait ressembler à ceci:

enter image description here

+0

Je pensais que le textureAtlas était censé être dans le sidey view accessy – Anonymous

+0

Texture atlas prend toutes vos petites textures et le transforme en 1 texture énorme. J'aime l'appeler une texture méga – Knight0fDragon

+0

Je viens de réaliser ce que vous avez dit. Vous voulez dire dans la vue du projet. Non, c'est l'ancienne façon avant qu'il ne soit introduit dans XCAssets – Knight0fDragon