2012-04-16 12 views

Respuesta

9

simple, acaba de tomar la altura y anchura y se divide por 2

CGSize winSize = [[CCDirector sharedDirector] winSize]; 
CGPoint point = ccp(winSize.width/2, winSize.height/2); 

Aquí está una manera algo más avanzado para hacerlo. Esto también funciona si ha llamado setPosition en la matriz del sprite (= auto en este ejemplo)

CGSize winSize = [[CCDirector sharedDirector] winSize]; 
CCSprite* centerSprite = [CCSprite spriteWithFile:@"sprite"]; 
CGPoint centerPoint = ccpSub(ccp(winSize.width/2, winSize.height/2), [self position]); 
[centerSprite setPosition:centerPoint]; 
[self addChild: centerSprite]; 
+0

Eso no le da al centro de la pantalla. Eso da la mitad del tamaño de la pantalla. – Jay

+7

Y la mitad del tamaño de la pantalla es el centro de la pantalla .. – s1m0n

+0

(0, 0) es relativo a su elemento principal, no a la esquina inferior izquierda de la pantalla. No funcionará si el padre se mudó. – Jay

0

Usted puede obtener el centro exacto de la pantalla no importa qué marco que está utilizando, Cocos o no y también incluso si Cocos no está configurado para utilizar toda la pantalla (como es el caso en ocasiones si recorta Cocos para hacer espacio para los anuncios) haciendo algo como esto:

int width=[[UIScreen mainScreen] bounds].size.width 
int height=[[UIScreen mainScreen] bounds].size.height 
CGPoint center=ccp(width/2,height/2); 

Tome nota de la ccp macro funciona en Cocos solamente; de lo contrario, use CGPointMake

Cuestiones relacionadas