Pregunta

Estoy haciendo un tirador de arriba hacia abajo que hace un uso extensivo de los mapas TMX creados con la aplicación "Azuleante". Dentro de mi mapa TMX, tengo una capa de "fondo" con baldosas de piso, que aparece debajo de mis personajes (ccsprites).

Tengo otra capa en el archivo TMX llamado "primer plano" que me gustaría aparecer "arriba" mis ccsprites, dando la ilusión de ellos caminando debajo de varios objetos.

Intenté usar la propiedad Vertexz de la clase CCNODE para hacer esto:

CCTMXLayer *backgroundLayer = ...
CCSprite *spriteNode = ...
CCTMXLayer *foregroundLayer = ...

[backgroundLayer setVertexZ:1];
[spriteNode setVertexZ:2];
[foregroundLayer setVertexZ:3];

... pero resulta que Vértexz en realidad altera el nodo visual Apariencia dentro de la vista OpenGL. Efectivamente hace que un ccnode parezca más grande, o Más cerca del usuario cuando tiene un valor de vértice más alto. No quiero eso, todo lo que quiero es una especie de capas de efecto imposiblemente delgado, sin ninguna diferencia visual entre las capas.

Así que pensé que intentaría alterar la propiedad Zorder de los nodos, como este:

[[backgroundLayer parent] reOrderChild:backgroundLayer z:1];
[[spriteNode parent] reOrderChild:backgroundLayer z:2];
[[foregroundLayer parent] reOrderChild:backgroundLayer z:3];

Pero me di cuenta de que hay un problema fundamental con lo que estoy haciendo aquí, ya que mi spritenode es un hijo directo de la ccscene, pero los nodos de fondo y primer plano son niños de mi cctmxtiledmap, que sí mismo es hijo de la ccscene.

Así que básicamente estoy tratando de deslizar un ccsprite entre dos capas del mapa, que, del Ccscene perspectiva, son realmente solo dos partes de la misma capa.

Parece que podría crear una instancia adicional de cctmxtiledmap solo para mantener la capa de primer plano, pero eso también parece exagerado. Mi otro pensamiento era crear ccsprites para servir el mismo propósito, pero parece que debe haber una mejor manera.

¿Fue útil?

Solución

Sí, he usado mosaico una vez muy a la ligera y creo que hay una opción para agregar una capa de objeto a su TMXTILEDMAP (Azuleos -> Capa -> Agregar capa de objeto ...), luego importada a su compilación puede vincularse un CCSPRITE con la capa de objeto correspondiente que ha creado. Publicaría su pregunta en el foro COCOS2D, ya que las personas allí tienen más experiencia y equipadas para responder esto con ejemplos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top