2009-02-19 7 views
1

Existe-t-il un moyen d'accélérer les animations en utilisant quelque chose comme un flou?accélérer avec le flou?

J'ai une boucle qui doit être parcourue pour représenter un "incrément" dans mon interface utilisateur. Lorsque l'utilisateur saute de plusieurs incréments à la fois, j'aimerais accélérer chacune des boucles d'animation.

Comment puis-je accomplir ceci?

Répondre

2

L'iPhone SDK n'a pas de filtres CoreImage (la bonne façon de le faire sous Mac OS X).

Vos autres options sont à

  • faux à l'aide de couches Core Animation.
  • utiliser OpenGL

Ce n'est pas trivial, mais dans le cas de CoreAnimation, vous pouvez essayer de créer quelques copies de la couche avec différentes valeurs alpha et/ou des ombres colorées. Les couches de masque translucides peuvent également fonctionner. Selon le contenu et la vitesse de votre jeu, vous devrez peut-être jouer pour obtenir l'effet que vous recherchez.

1

Si vous souhaitez coller uniquement avec Quartz, vous pouvez également envisager de compter le nombre d'incréments à déplacer, et effectuer une seule animation qui les encapsule tous.

Ensuite, définissez la durée de l'animation unique comme étant inférieure à x animations individuelles seraient "empilées" bout à bout.

Bien que cela ne vous donne pas un flou, vous pouvez tout simplement ajuster la durée de l'ensemble à être inférieure à la somme des parties individuelles si elle est effectuée séparément. À cette échelle, ces astuces ont tendance à être les mêmes pour l'utilisateur.

1

Vous pouvez obtenir un effet de "marbrure" en créant un calque, en définissant son alpha à 0,25 (ou à toute autre valeur que vous jugez bonne), puis en copiant votre image dans 3-5 positions (choisissez une valeur qui ressemble bon pour vous) espacés pour le faire ressembler à un flou de mouvement.

Pour plus de fantaisie, ayez 3 CGLayers, à .25, .5, .75, plus l'image originale, et laissez les CGLayers 3, 2 et 1 derrière, pour laisser une "traînée".