2012-04-16 24 views

risposta

9

Semplice, basta prendere l'altezza e la larghezza e dividerlo per 2

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

Ecco un modo un po 'più avanzata di farlo. Questo funziona anche se avete chiamato setPosition sul genitore dello sprite (= auto in questo esempio)

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

Ciò non indica il centro dello schermo. Ciò dà la metà delle dimensioni dello schermo. – Jay

+7

E metà della dimensione dello schermo è il centro dello schermo .. – s1m0n

+0

(0, 0) è relativo al suo genitore, non all'angolo in basso a sinistra dello schermo. Non funzionerà se il genitore si è trasferito. – Jay

0

È possibile ottenere il centro esatto dello schermo non importa quale quadro si sta utilizzando, Cocos o no , e anche nel caso in Cocos non è impostato per utilizzare tutto lo schermo (come è il caso a volte se si ritaglia Cocos per fare spazio per gli annunci) facendo qualcosa di simile a questo:

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

Nota i ccp macro funziona in Cocos solo; altrimenti, utilizzare CGPointMake

Problemi correlati