2008-12-03 10 views
9

Estoy buscando mostrar persistentemente una puntuación del juego en una aplicación para iPhone usando cocos2d. Dejar de tomar el código que muestra el FPS Cocos2d la aplicación se está ejecutando en:¿La mejor manera de mostrar una puntuación de juego en iPhone con cocos2d?

-(void) showFPS 
{ 
    frames++; 
    accumDt += dt; 

    if (accumDt > 0.1) { 
     frameRate = frames/accumDt; 
     frames = 0; 
     accumDt = 0; 
    } 

    NSString *str = [NSString stringWithFormat:@"%.1f",frameRate]; 
    [FPSLabel setString:str]; 
    [FPSLabel draw]; 
} 

puedo obtener la puntuación para mostrar correctamente, pero parpadea, a pesar de que la aplicación se está ejecutando en más rápido que el 60 FPS ... Cualquier ideas?

+0

Una cosa acerca de este código que mostró, no mensaje FPSLabel con dibujar. En su lugar, use [FPSLabel setNeedsDisplay: YES] después de actualizarlo. Esto debería cancelar tu parpadeo. –

Respuesta

5

Pruebe usar LabelAtlas en su lugar. Es más rápido (consume mucha menos CPU). Consulte el AtlasDemo que viene con la distribución de cocos2d para ver cómo usarlo.

9

Para cualquiera que pueda estar interesado, que terminé usando una etiqueta cocos2d como tan:

scoreLabel = [Label labelWithString: [NSString stringWithFormat:@"%d", score] dimensions: CGSizeMake(180, 20) alignment: UITextAlignmentRight fontName:@"Arial" fontSize: 20]; 
[scoreLabel setPosition: cpv(100,100)]; 
[self add: scoreLabel]; 

Esperemos que esto puede ayudar a alguien más.

+2

A partir de Cocos2d 0.8, debe utilizar BitmapFontAtlas, ya que es mucho más rápido para algo que se actualiza con frecuencia en la pantalla. –

Cuestiones relacionadas