Modify the Code:
Appdelegate. cpp
// Set FPS. The default value is 1.0/60 if you don't call this
Pdirector-> setanimationinterval (1.0/30 );
There is also: cocos2dxrenderer. Java
// Private Static long sanimationinterval = (long) (1.0/60 * cocos2dxrenderer. nanosecondspersecond );
Private Static long sanimationinterval = (long) (1.0/30 * cocos2dxrenderer. nanosecondspersecond );
...
@ Override
Public void ondrawframe (final gl10 GL ){
/*
* FPS controlling algorithm is not accurate, and it will slow down FPS
* On some devices. So comment FPS controlling code.
*/
Final long nowinnanoseconds = system. nanotime ();
// Shocould render a frame when ondrawframe () is called or there is
// "Ghost"
Cocos2dxrenderer. nativerender ();
Final long afterrendernano = system. nanotime ();
// Final long interval = afterrendernano-mlasttickinnanoseconds-cocos2dxrenderer. sanimationinterval; // afterrendernano-nowinnanoseconds; // nowinnanoseconds-This. Second;
Final long interval = afterrendernano-nowinnanoseconds;
// FPS controlling
If (interval <cocos2dxrenderer. sanimationinterval ){
// Log. D ("ondrawframe", "cancel frame" + interval + "/" + cocos2dxrenderer. sanimationinterval );
Try {
// Because we render it before, so we shoshould sleep twice Time Interval
Thread. Sleep (cocos2dxrenderer. sanimationinterval-interval)/cocos2dxrenderer. nanosecondspermicrosecond );
} Catch (final exception e ){
}
}
// This. mlasttickinnanoseconds = nowinnanoseconds;
}