2011-11-04 12 views
7

estoy empezando a aprender cocos2d, y me preguntaba por qué realmente usamos convertToGL de CCDirector, [[CCDirector sharedDirector] convertToGL: touchLoc]; cuando ya tenemos el [touch view] de [touch locationInView: [touch view]]; ?cocos2d: ¿por qué convertToGL, y por qué addChild CCSprite antes de su cuerpo?

También, primero "addChild" un CCSprite, que contiene una imagen, y luego establecemos su cuerpo, y el ccsprite se convierte en el usuario de datos de este cuerpo. ¿No sería mejor "agregar a un niño" el cuerpo en su lugar? o es para un propósito particular?

Gracias

+0

solo una pregunta, a menos que la otra pregunta/seguimiento se relacione con la pregunta principal – LearnCocos2D

+1

segunda parte: supongo que se refiere a un cuerpo de Box2D. El método addChild solo toma objetos derivados de CCNode. No sabe cómo trabajar con la clase b2Body. – LearnCocos2D

+0

@ LearnCocos2D: ¡bien gracias por la respuesta rápida! y perdón por la doble pregunta, lo tendré en cuenta! – Paul

Respuesta

12

Esto es porque el OpenGL Ver (clase EAGLView) utiliza un sistema de coordenadas diferente de Cocoa Touch hace.

Por ejemplo, la posición 0,0 para Cocoa Touch está en la esquina superior izquierda, mientras que la posición 0,0 para OpenGL está en la esquina inferior izquierda. Es por eso que necesita "convertir a GL" todas las coordenadas de UIView.

La conversión también tiene en cuenta la orientación actual del dispositivo.

+0

gracias, ¡bien tiene sentido! Aclamaciones – Paul

Cuestiones relacionadas