首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocos2D 2.x -从CCDirector获取framerate_值

Cocos2D 2.x -从CCDirector获取framerate_值
EN

Stack Overflow用户
提问于 2012-12-15 14:05:12
回答 2查看 643关注 0票数 0

我想在CCDirector类中使用在'showStats‘方法中计算的ivar 'framerate_’值。目前,我已经在CCDirector.m/h文件中添加了一个方法来访问值,例如...

CCDirec.h:

代码语言:javascript
复制
-(ccTime)getCCFrameRate;

CCDirec.m:

代码语言:javascript
复制
-(ccTime)getCCFrameRate {
    return frameRate_;
}

...so我现在可以像这样得到这个值:

代码语言:javascript
复制
ccTime frameRateOutput = [[MyDirector sharedDirector] getCCFrameRate];

这是可行的,但我不喜欢“黑”Cocos2D框架代码。我尝试过对CCDirector进行子类化,但遇到了一些问题。感谢任何关于在不干扰框架代码的情况下获得这个'framerate_‘ivar的最佳方法的建议。谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-12-15 16:26:49

您可以获得任何对象的任何ivar,如下所示:

代码语言:javascript
复制
Ivar iv = object_getInstanceVariable(obj, "_framerate");
void *ivp = (char *)obj + ivar_getOffset(iv);
TYPE framerate = *(TYPE *)ivp;

然而,在我看来,这比扩展框架更像是一种黑客行为。

票数 2
EN

Stack Overflow用户

发布于 2012-12-15 22:21:13

如果您绝对希望避免修改CCDirector代码,则可以在自定义类中重新生成相同的代码。

虽然后者是绝对可以的,但只有当你升级到更新的cocos2d版本时,你才会遇到问题。在这种情况下,只需重新应用您的更改,因为它们是如此之少。

您不能轻易地将CCDirector子类化,因为它是一个单例,并且它已经有了特定于平台的子类CCDirectorIOS和CCDirectorMac。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13889832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档