2012-06-04 12 views
13

tengo 3 números en la parte inferior izquierda de la pantalla en mi proyecto Cocos2D 2.0:Cocos2d 2.0 - 3 números en la parte inferior izquierda

82 
0.016 
60.0 

60 es probablemente FPS y ¿qué pasa con los otros dos? Según recuerdo, las versiones anteriores de Cocos solo tenían el número de FPS.

Alguna pista? gracias

+0

El número superior creo que es el número de sprites. El medio del que no estoy seguro. –

+0

tiene sentido ... 82 sprites. Derecha. Si esto ayuda, el número del medio oscila entre 0.016 y 0.017 ... – SpaceDog

+0

Si recuerdo correctamente, eso es milisegundos para algo. ¿Quizás los milisegundos de FPS? Pero el centro no importa tanto, solo la parte superior e inferior realmente importan. –

Respuesta

37
82 <-- number of draw calls 
0.016 <-- time it took to render the frame, here: 1.0/60.0 = 60 fps 
60.0 <-- frames per second 

El primer número (82) es el número de llamadas al sorteo (que es bastante alto). Normalmente, cada nodo que representa algo en la pantalla (sprites, etiquetas, partículas fx, etc.) aumenta ese número en uno. Las llamadas al sorteo son costosas, por lo que es muy importante mantener ese número bajo. Una forma de hacerlo es haciendo llamadas por lotes - cocos2d v3 hace esto automáticamente.

El tiempo que tardó en representar un fotograma, en segundos. Como necesita dibujar un nuevo cuadro cada 0.016666666 segundos para lograr 60 fotogramas por segundo (1/60 = 0,0166…), es solo el inverso de la tasa de fotogramas.

El último número es el número de cuadros por segundo aka framerate aka fps. Este valor, como el anterior, se promedia sobre varios cuadros para que no fluctúe tanto.

Tenga en cuenta que los dispositivos iOS siempre tienen encendido VSynch (sincronización vertical). Un juego puede renderizar un fotograma cada 0.0166 segundos; si cada fotograma tarda 0.017 segundos en computarse, la velocidad de fotogramas se reduce a la mitad a 30 fps. Solo puede tener fps en pasos concretos: 60, 30, 20, 15, 12, 10 ...

Dado que la pantalla fps se promedia en un par de cuadros, oculta este hecho. Entonces, si las estadísticas de la pantalla muestran 45 fps, sería una secuencia de fotogramas en la que cada fotograma tarda más de 0,0166 segundos. En los números de fps, los fps individuales de los fotogramas más recientes habrían sido: 60, 30, 60, 30, 60, 30.

+0

gracias. De hecho, esta aplicación no está muy optimizada en este momento, pero lo será. La optimización es generalmente lo último que hago. Gracias por las explicaciones. – SpaceDog

2

El número superior es el número de sprites en su CCLayer, etc ..

El medio es milisegundos del FPS.

¡El fondo es por supuesto tu FPS! :)

+1

El número superior es el número de llamadas al sorteo, no el número de sprites. – LearnCocos2D

+0

@ LearnCocos2D ¿Cuál es la diferencia entre uno y otro? –

+0

cada objeto dibujado crea una llamada de sorteo, es decir, cada etiqueta, sprite, cada sistema de partícula, cada nodo de lote agrega 1 llamada de extracción. Draw call es un cambio de estado en opengl, y el cambio de estado (es decir, el dibujo de una textura diferente) es una operación costosa. Más aún cuanto más grande es la textura. – LearnCocos2D

Cuestiones relacionadas