He estado buscando por un tiempo, y no he podido encontrar una respuesta a esto por alguna razón. Parece bastante simple, pero tal vez simplemente no puedo encontrar la función correcta en la biblioteca.Cocos2D CCNode posición en coordenadas de pantalla absoluta
Tengo una escena con una capa que contiene un grupo de CCNodes con cada CCSprite en ellos.
Durante la aplicación, me muevo alrededor de la posición de la capa principal, de modo que me "desplazo" alrededor de una cámara de una manera. (es decir, traduzco la capa completa para que la ventana gráfica cambie).
Ahora quiero determinar la posición absoluta de un CCNode en coordenadas de pantalla. La propiedad de posición devuelve la posición relativa al nodo padre, pero realmente me gustaría que se transformara en su posición real en la pantalla.
Además, como una ventaja adicional, sería increíble si pudiera expresar esta posición como sistema de coordenadas donde 0,0 se asigna a la esquina superior izquierda de la pantalla y 1,1 a la derecha de la pantalla. (Así que me mantengo compatible con todos los dispositivos)
Editar: Tenga en cuenta que la solución debería funcionar para cualquier jerarquía de CCNodes preferiblemente.
Ah brilliant. Casi llegué por mi cuenta, error estúpido: no tomó la posición del sprite en sí, sino del nodo, que no funciona. Aparentemente. Pero esto es brillante, ya que también tiene en cuenta la escala y tal. Estupendo. Cinco estrellas para ti – Tovi7
CCDirector no tiene displaySizeInPixels en versiones recientes de cocos2d. ¿Alguna solución para esto? (Encontrado 'winSizeInPixels', podría ser.) – Jonny
Sé que esto es viejo, pero ¿es correcto que obtenga un worldCoord = (50, 200) (línea 6)? Esperaría worldCoord = (100, 150). Cuando paso, veo que tx = 100 y ty = 150 como la transformación ... ¿los ejes están cambiados? ¿Me estoy perdiendo algo obvio? – gdbj