2013-11-01 17 views
7

Qualcuno può fornire un esempio di come sfocare progressivamente l'immagine di un SKSpriteNode utilizzando il Kit Sprite di Apple? Ad esempio, supponiamo che l'utente tocchi un pulsante sullo schermo che quindi attiva lo sfondo lentamente (cioè progressivamente) sfocato fino a raggiungere una soglia specifica. Idealmente, mi piacerebbe invertire anche il processo (ad esempio, consentire all'utente di annullare l'immagine toccando lo stesso pulsante).Come sfocare progressivamente l'immagine di SKSpriteNode usando Sprite Kit?

+1

Hai già visualizzato SKEffectNode? – prototypical

risposta

6

Ci sono due possibili percorsi da prendere su questo, entrambi utilizzano SKEffectNodes

SKEffectNodes consentono di applicare filtri CI ad un nodo.

C'è un filtro CI per sfocatura gaussiana. Quindi crea un SKEffectNode e assegnagli un filtro sfocatura, quindi aggiungi il pulsante come un bambino.

Come lo animate?

Usa SKAction per creare un'azione personalizzata e modificare i parametri di filtro, tuttavia, questo può essere lento e non sempre dare l'effetto di sfocatura 'progressive' ci si potrebbe aspettare, quindi quello che faccio è questo:

Creo un filtro e SKEffectNode come descritto sopra, quindi eseguo il rendering del risultato su una Texture, utilizzando SKView.textureForNode. Quindi aggiungo la texture risultante a un array, dopodiché faccio un loop su questo, continuando ad applicare l'effetto sfocatura sopra l'immagine precedente creata, fino a quando non ho un numero impostato di frame. Quindi usa le trame create per creare un'animazione con SKAction.animateWithTextures. Nella mia esperienza, questo esce molto bene.