2009-04-15 14 views
2

Ich verwende das cocos2d-Framework für verschiedene meiner Anwendungen, und habe das folgende Problem festgestellt. Ich habe ein paar Sequenzen von Aktionen und CallFuncNDs eingerichtet, die Aktionen haben Laufzeiten und wenn ich sie im iPhone-Simulator starte, funktioniert es genau so, wie ich es mir vorstelle: Übergänge brauchen die Zeit, die ich ihnen gesetzt habe und sie gehen in der richtigen Reihenfolge.iPhone & CoCos2D - Interval Aktion Timing Problem beim Ausführen in Gerät

Wenn ich es auf meinem bereitgestellten iPhone teste, wird alles in weniger als einer Sekunde abgespielt. Richtige Reihenfolge, Timing ist proportional zwischen den Aktionen, aber es ist alles in einer Sekunde komprimiert.

Hat jemand eine Idee, warum die cocos2d Animationen sich auf einem Gerät anders verhalten würden? Mein Code ist alles ähnlich wie die cocos2d-Effekt-Demos, mit dem Unterschied, dass ich ein ParticleSystem und nicht einen Sprite animiere - obwohl das Problem immer noch bei Sprites auftaucht.

Antwort

3

Ich habe ähnliche Schwierigkeiten erlebt, wo der Code im Simulator getestet wird, läuft es einwandfrei. Wenn es jedoch auf das Gerät verschoben wird, scheint das Timing deaktiviert zu sein. Ich habe diesen Unterschied der Verwendung der Desktop-CPU und des Speichers durch den Simulator zugeschrieben, wobei das Gerät seine physische Hardware verwendet und das Timing aufgrund der Verarbeitung von Cocos2d (Bild für Bild, in einer "Spielschleife") ausfällt. Wenn Sie ein paar Dinge tun, fällt die Bildrate und Cocos verfälscht sich ... vor allem, wenn Sie sehr nahe beieinander liegende Zeitpläne oder Zeitpläne haben, die sich selbst löschen und mit unterschiedlichen Zeitpunkten (in Schritten von 0,1 oder weniger) neu planen ist, wo ich am meisten davon gelaufen bin).

+0

Das war mein erster Gedanke, aber ich verstand, dass wenn ich sage, dass eine Animation für 0,1 Sekunden laufen wird, wird es unabhängig von der Hardware tun. Es läuft für 0,1 Sekunden im Simulator, aber extrem schnell auf dem iPhone - was ich erwarte, dass es tatsächlich langsamer als mein MacBook ist, wenn es um OpenGL geht. –

+0

Ich glaube, das Problem liegt in der Tatsache, dass das iPhone tatsächlich langsamer ist, also scheint die Animation schneller zu sein, weil die Zeitsynchronisation ausgeschaltet ist. Wenn das Update für die Animation aufgerufen wird, ist die Delta-Zeit viel höher als beim Aufruf des Simulators, wodurch die Animation schneller abgeschlossen wird. –