2012-06-04 16 views
13

ho 3 numeri sulla parte in basso a sinistra dello schermo sul mio progetto Cocos2d 2.0:Cocos2d 2,0 - 3 numeri in basso a sinistra

82 
0.016 
60.0 

60 è probabilmente FPS e per quanto riguarda gli altri due? Come ricordo, le versioni precedenti di Cocos avevano solo il numero FPS.

Eventuali indizi? grazie

+0

Il numero più elevato credo sia il numero di sprite. Il mezzo di cui non sono sicuro. –

+0

ha senso ... 82 sprite. Destra. Se questo aiuta, il numero medio oscilla tra 0,016 e 0,017 ... – SpaceDog

+0

Se ricordo bene, questo è millisecondo per qualcosa. Forse i millisecondi del FPS? Ma la metà non ha importanza, solo la parte superiore e quella inferiore contano davvero. –

risposta

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 

Il primo numero (82) è il numero di chiamate di prelievo (che è piuttosto elevato). In genere ogni nodo che esegue il rendering di qualcosa sullo schermo (sprite, etichette, particella fx, ecc.) Aumenta quel numero di uno. Le chiamate di estrazione sono costose, quindi è molto importante mantenere tale numero in basso. Un modo per farlo è raggruppando i richiami di disegno: cocos2d v3 lo fa automaticamente.

Il tempo necessario per il rendering di un frame, in secondi. Poiché è necessario disegnare un nuovo fotogramma ogni 0,016666666 secondi per ottenere 60 fotogrammi al secondo (1/60 = 0,0166…) è solo l'inverso del framerate.

L'ultimo numero è il numero di fotogrammi al secondo, ovvero fotogrammi alias fps. Questo valore, come il precedente, viene mediato su più fotogrammi in modo che non fluttui tanto.

Si noti che i dispositivi iOS dispongono sempre di VSynch (sincronizzazione verticale). Un gioco può rendere un frame ogni 0,0166 secondi - se ogni fotogramma richiede 0,017 secondi per il calcolo, il framerate viene effettivamente dimezzato a 30 fps. È possibile avere solo fps in passi concreti: 60, 30, 20, 15, 12, 10 ...

Poiché la visualizzazione fps viene calcolata su un paio di fotogrammi, nasconde questo fatto. Quindi se le statistiche del display mostrano 45 fps sarebbe una sequenza di fotogrammi in cui ogni altro fotogramma impiegava più di 0,0166 secondi. Nei numeri fps i singoli fps dei fotogrammi più recenti sarebbero stati: 60, 30, 60, 30, 60, 30.

+0

grazie mille. In effetti questa app non è molto ottimizzata in questo momento, ma lo sarà. L'ottimizzazione è generalmente l'ultima cosa che faccio. Grazie per le spiegazioni. – SpaceDog

2

Il numero superiore è il numero di sprite nel CCLayer, ecc ..

La metà è millisecondi del FPS.

Il fondo è, naturalmente, il tuo FPS! :)

+1

Il numero più alto è il numero di chiamate di estrazione, non il numero di sprite. – LearnCocos2D

+0

@ LearnCocos2D Qual è la differenza tra l'una e l'altra? –

+0

ogni oggetto disegnato crea una chiamata di estrazione, ovvero ogni etichetta, sprite, ogni particella, ogni nodo batch aggiunge 1 chiamata di estrazione. Draw call è un cambiamento di stato in opengl, e il cambiamento degli stati (cioè il disegno da una trama diversa) è un'operazione costosa. Più così più grande è la trama. – LearnCocos2D

Problemi correlati