gratis game creator cocos2d cocos iphone objective-c cocos2d-iphone

iphone - cocos2d - cocos game creator



PosiciĆ³n CCNode Cocos2D en coordenadas de pantalla absolutas (1)

Cada CCNode, y sus descendientes, tienen un método llamado convertToWorldSpace: (CGPoint) p

Esto devuelve las coordenadas relativas a su escena.

Cuando tenga esta coordenada, voltee su eje Y, ya que quiere que 0,0 esté arriba a la izquierda.

CCNode * myNode = [[CCNode alloc] init]; myNode.position = CGPointMake(150.0f, 100.0f); CCSprite * mySprite = [[CCSprite alloc] init]; // CCSprite is a descendant of CCNode [myNode addChild: mySprite]; mySprite.position = CGPointMake(-50.0f, 50.0f); // we now have a node with a sprite in in. On this sprite (well, maybe // it you should attack the node to a scene) you can call convertToWorldSpace: CGPoint worldCoord = [mySprite convertToWorldSpace: mySprite.position]; // to convert it to Y0 = top we should take the Y of the screen, and subtract the worldCoord Y worldCoord = CGPointMake(worldCoord.x, ((CGSize)[[CCDirector sharedDirector] displaySizeInPixels]).height - worldCoord.y); // This is dry coded so may contain an error here or there. // Let me know if this doesn''t work. [mySprite release]; [myNode release];

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.

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 pueda "desplazarme" 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 parte inferior 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.