我想使用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/

10-10 20:42