2012-08-27 9 views
5

Me gustaría hacerlo para que un CCNode (podría ser CCLayer, CCSprite, etc.) pueda enmascarar a todos sus elementos secundarios con un sombreador para que puedan enmascararse progresivamente a medida que se acercan a los límites del nodo sin tener que modificar su valor de opacidad directamente. Por ejemplo, un menú podría tener este aspecto:¿Cómo enmascarar los sprites en cocos2d por el alfa de un degradado?

Menu with items that fade near the edges

La máscara en este caso sería un gradiente, que podría ser algo como esto:

enter image description here

Respuesta

0

El tutorial básico para la creación de un sprite enmascarador está disponible en Ray Wenderlich's website, aunque no estoy seguro de si le permitirá enmascarar los nodos de los niños también. De lo contrario, probablemente tendrá que usar CCRenderTexture, dibujar nodos secundarios para texturar, y luego enmascararlo con el nodo enmascarador creado en el tutorial.

+0

He visto ese tutorial, pero no responde mi pregunta. – GoldenJoe

+0

GoldenJoe, no puedes resolver tu tarea sin renderizar objetivo o implementar alfa de degradado en todos los elementos secundarios. – brigadir

+0

No estoy del todo claro sobre cómo hace su renderizado Cocos2d, pero ¿no es cada nodo solo un quad con una textura? Si los hijos se procesan en nodos principales, entonces debería funcionar el nodo padre. Aunque no tengo idea de cómo hacer esto ahora ... – GoldenJoe

0

Sé que probablemente este no es el mecanismo que desea, pero recientemente quería un gradiente alfa que variaba de forma circular. Tenía un texto que giraba alrededor de un sprite y solo quería que fuera visible cuando estaba en la parte superior del círculo.

El enfoque más simple para mí fue crear un sprite que era una banda circular donde la banda era un "negro" completo en la parte inferior y se graduó de nuevo a completamente transparente en la parte superior.

Al colocar esto arriba en el orden z, el texto obtuve el efecto que buscaba. Imagino que podría lograr el mismo tipo de efecto de esta manera

Para verlo en acción, eche un vistazo al menú principal de mi aplicación, Claustrophobic.

Cuestiones relacionadas