2012-06-04 10 views
13

Ich habe 3 Zahlen auf der linken unteren Teil des Bildschirms auf meinem Cocos2D 2.0-Projekt:Cocos2d 2,0-3 Zahlen auf links unten

82 
0.016 
60.0 

60 ist wahrscheinlich FPS und was ist mit den anderen beiden? Wie ich mich erinnere, hatten frühere Versionen von Cocos nur die FPS-Nummer.

Irgendwelche Hinweise? Dank

+0

Die oberste Zahl glaube ich ist die Anzahl der Sprites. Die Mitte bin ich mir nicht sicher. –

+0

macht es Sinn ... 82 Sprites. Recht. Wenn das hilft, schwingt die mittlere Zahl zwischen 0.016 und 0.017 ... – SpaceDog

+0

Wenn ich mich richtig erinnere, sind das Millisekunden für etwas. Vielleicht die Millisekunden der FPS? Aber die Mitte ist nicht so wichtig, nur die Ober- und Unterseite spielt eine Rolle. –

Antwort

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 

Die erste Zahl (82) ist die Anzahl der Zeichenaufrufe (die ziemlich hoch ist). Normalerweise erhöht jeder Knoten, der etwas auf dem Bildschirm darstellt (Sprites, Labels, Partikel-FX usw.) diese Zahl um eins. Anrufe zu ziehen sind teuer, daher ist es sehr wichtig, diese Nummer niedrig zu halten. Eine Möglichkeit besteht darin, Zeichnungsaufrufe zu dosieren - cocos2d v3 erledigt dies automatisch.

Die Zeit bis zum Rendern eines Frames in Sekunden. Da Sie alle 0,016666666 Sekunden einen neuen Frame zeichnen müssen, um 60 Frames pro Sekunde (1/60 = 0,0166…) zu erreichen, ist es nur die Umkehrung der Framerate.

Die letzte Zahl ist die Anzahl der Bilder pro Sekunde aka Framerate aka fps. Dieser Wert wird wie der vorherige über mehrere Frames gemittelt, so dass er nicht so stark schwankt.

Beachten Sie, dass auf iOS-Geräten immer VSynch (vertikale Synchronisierung) aktiviert ist. Ein Spiel kann einen Frame alle 0,0166 Sekunden rendern - wenn jeder Frame 0,017 Sekunden zum Berechnen benötigt, wird die Framerate effektiv auf 30 fps halbiert. Sie können nur fps in konkreten Schritten haben: 60, 30, 20, 15, 12, 10 ...

Da die fps-Anzeige über ein paar Frames gemittelt wird, verbirgt es diese Tatsache. Wenn also die Display-Statistik 45 fps anzeigen würde, wäre das eine Folge von Frames, bei denen jeder zweite Frame länger als 0,0166 Sekunden dauert. In fps-Zahlen wären die einzelnen fps der letzten Frames gewesen: 60, 30, 60, 30, 60, 30.

+0

vielen Dank. In der Tat ist diese App im Moment nicht sehr optimiert, aber es wird sein. Optimierung ist das letzte, was ich mache. Danke für die Erklärungen. – SpaceDog

2

Die obere Zahl ist die Anzahl der Sprites in Ihrer CCLayer, etc ..

Die Mitte der FPS Millisekunden.

Der Boden ist natürlich Ihre FPS! :)

+1

Die oberste Nummer ist die Anzahl der Zeichenaufrufe, nicht die Anzahl der Sprites. – LearnCocos2D

+0

@ LearnCocos2D Was ist der Unterschied zwischen den beiden? –

+0

Jedes gezeichnete Objekt erzeugt einen Zeichnungsaufruf, dh jedes Label, Sprite, jedes Partikelsystem, jeder Stapelknoten fügt 1 Zeichenaufruf hinzu. Draw call ist eine Zustandsänderung in opengl, und das Ändern von Zuständen (dh Zeichnen aus einer anderen Textur) ist eine teure Operation. Umso größer ist die Textur. – LearnCocos2D

Verwandte Themen