我想使用CCDirector类的“ showStats”方法中计算的ivar“ framerate_”值。目前,我已经向CCDirector.m / h文件添加了一种方法来访问值,例如...
CCDirecor.h:
-(ccTime)getCCFrameRate;
CCDirecor.m:
-(ccTime)getCCFrameRate {
return frameRate_;
}
...所以我现在可以像这样获得值:
ccTime frameRateOutput = [[MyDirector sharedDirector] getCCFrameRate];
这行得通,但是我不希望不“破解” Cocos2D框架代码。我曾尝试对CCDirector进行子类化,但遇到了一些问题。在不弄乱框架代码的情况下,对获得此'framerate_'ivar最佳方法的任何建议表示赞赏。谢谢
最佳答案
您可以像这样获取任何对象的任何ivar:
Ivar iv = object_getInstanceVariable(obj, "_framerate");
void *ivp = (char *)obj + ivar_getOffset(iv);
TYPE framerate = *(TYPE *)ivp;
但是,在我看来,这比扩展框架更像是一个hack。
关于ios - Cocos2D 2.x-从CCDirector获取framerate_值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13889832/