ios animation sprite-kit sktextureatlas

ios - Sprite Kit animateWithTextures lags



animation sprite-kit (2)

Estoy seguro de que hay pocas formas de evitar esto. Lo que debes hacer es precargar un atlas antes de que comience tu juego. Solo muestra una pantalla de carga al comienzo del juego y precarga tus atlas.

Puede probar con + preloadTextureAtlases: withCompletionHandler:

[SKTextureAtlas preloadTextureAtlases:textureAtlasesArray withCompletionHandler:^{ /*Game Start*/}];

Otra forma de implementar la carga de recursos antes que cualquier otra cosa (y mantener todo en la memoria) se describe aquí en el ejemplo del juego de Aventura.

Para obtener más información sobre cómo cargar activos de forma asíncrona, eche un vistazo al código que se puede descargar desde el enlace anterior.

Estoy usando atlas de texturas en mi juego Sprite Kit. Estoy creando SKTextureAtlas objeto SKTextureAtlas y almacenando sus texturas en una matriz para cada animación. Entonces, cuando necesito algo de animación en mi héroe, llamo a animateWithTextures y le envío la matriz correspondiente. Hay algunos rezagos cuando comienzo las animaciones. ¿Hay alguna manera de comenzar la animación sin problemas?


tuve el mismo problema y lo resolví en mi juego al no usar atlas. Así que prueba este ejemplo:

-(void)makePlayerAnimation:(SKSpriteNode *)player { SKTexture *texture1 = [SKTexture textureWithImageNamed:@"texture1.png"]; SKTexture *texture2 = [SKTexture textureWithImageNamed:@"texture2.png"]; SKTexture *texture3 = [SKTexture textureWithImageNamed:@"texture3.png"]; SKAction *animationTextures = [SKAction animateWithTextures:@[texture1, texture2, texture3] timePerFrame:0.1]; [player runAction:animationTextures]; }

Cuando desee activar la animación, haga esto:

[self makePlayerAnimation:myNode];

o

[self makePlayerAnimation:self.myNode];

Solo depende de cómo lo declaraste. Si necesita ejecutar animaciones para siempre, puede agregar líneas al final del método anterior:

SKAction *repeat = [SKAction repeatActionForever: animationTextures];

Espero que esto ayude.