objective-c transitions sprite-kit skspritenode

objective c - ¿Cómo difuminar progresivamente la imagen de un SKSpriteNode usando el Kit Sprite?



objective-c transitions (1)

Hay dos caminos posibles para tomar esto, ambos usan SKEffectNodes

SKEffectNodes le permite aplicar filtros CI a un nodo.

Hay un filtro de CI para Gaussian Blur. Por lo tanto, cree un SKEffectNode y asígnele un filtro de desenfoque, luego agregue el botón como un niño.

¿Cómo lo animas?

Use SKAction para crear una acción personalizada, y cambie los parámetros de filtro, sin embargo, esto puede ser lento y no siempre da el efecto de desenfoque ''progresivo'' que podría esperar, entonces lo que hago es esto:

Creo un filtro y SKEffectNode como se describe arriba, luego renderizo el resultado a una Textura, usando SKView.textureForNode. A continuación, agrego la textura resultante a una matriz, luego hago un bucle en esta, continuando para aplicar el efecto de desenfoque sobre la imagen anterior creada, hasta que tenga un número determinado de marcos. Luego use las texturas creadas para hacer una animación con SKAction.animateWithTextures. En mi experiencia, esto sale muy bien.

¿Puede alguien proporcionar un ejemplo de cómo difuminar progresivamente la imagen de un SKSpriteNode utilizando el Kit Sprite de Apple? Por ejemplo, digamos que el usuario toca un botón en la pantalla que luego desencadenará un desenfoque lento (es decir, progresivo) hasta que alcance un umbral específico. Idealmente, me gustaría invertir el proceso también (por ejemplo, permitir que el usuario deshaga la imagen tocando el mismo botón).