新手问题,关于帧率设置的问题

大家好,我这里刚刚接触cocos2dx。有个疑问请教下。
我用的版本是2.2.5,平台win7,VS版本10.
在hello world中有如下代码
// 打开fps显示
pDirector->setDisplayStats(true);
// 设置fps帧率
pDirector->setAnimationInterval(1.0/60);
我在尝试修改帧率的时候发现,如果我将帧率设置为大于60.那么这个设置将不会起作用。
进入setAnimationInterval函数。根据逻辑可知变量m_dAnimationInterval应该是确定帧率的控制变量。查找变量得到如下结果

查找全部 "m_dAnimationInterval", 子文件夹, 查找结果 1, "整个解决方案"
  D:\cocos2d-x-2.2.5\cocos2dx\CCDirector.cpp(203):    m_dOldAnimationInterval = m_dAnimationInterval = 1.0 / fps;
  D:\cocos2d-x-2.2.5\cocos2dx\CCDirector.cpp(801):    m_dOldAnimationInterval = m_dAnimationInterval;
  D:\cocos2d-x-2.2.5\cocos2dx\CCDirector.cpp(1068):    CCApplication::sharedApplication()->setAnimationInterval(m_dAnimationInterval);
  D:\cocos2d-x-2.2.5\cocos2dx\CCDirector.cpp(1095):    m_dAnimationInterval = dValue;
  D:\cocos2d-x-2.2.5\cocos2dx\CCDirector.h(125):    inline double getAnimationInterval(void) { return m_dAnimationInterval; }
  D:\cocos2d-x-2.2.5\cocos2dx\CCDirector.h(383):    double m_dAnimationInterval;
  匹配行: 6    匹配文件: 2    合计搜索文件: 772

分别进入各个查找结果,发现只有第一处和第三处有对m_dAnimationInterval进行修改。第一处根据代码来看应该是设置默认值。理论上来讲当调用setAnimationInterval后它设置的值应该是被修改为最新的指定值了的。线索到此处断开。没有找到cocos是如何控制帧率的。然后我进入setDisplayStats函数,试图找到fps显示到界面的地方。从这里找到一些线索。进入函数后找到如下代码
inline void setDisplayStats(bool bDisplayStats) { m_bDisplayStats = bDisplayStats; }
判断m_bDispalyStats应该是控制开关,查找之。最后找到一个void CCDirector::showStats(void)函数,确定此处是控制显示帧率的地方。并确定显示帧率的代码如下
sprintf(m_pszFPS, \\\"%4lu\\\", (unsigned long)g_uNumberOfDraws);
m_pDrawsLabel->setString(m_pszFPS);
确定全局变量 g_uNumberOfDraws就是帧率,查找找到如下带参数宏
#define CC_INCREMENT_GL_DRAWS(n) g_uNumberOfDraws += n
通过宏进行查找,得到如下结果

查找全部 "CC_INCREMENT_GL_DRAWS", 子文件夹, 查找结果 1, "整个解决方案"
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawingPrimitives.cpp(145):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawingPrimitives.cpp(192):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawingPrimitives.cpp(218):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawingPrimitives.cpp(290):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawingPrimitives.cpp(334):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawingPrimitives.cpp(378):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawingPrimitives.cpp(417):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawingPrimitives.cpp(474):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawingPrimitives.cpp(508):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\draw_nodes\CCDrawNode.cpp(228):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\effects\CCGrid.cpp(349):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\effects\CCGrid.cpp(566):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\include\ccMacros.h(244):/** @def CC_INCREMENT_GL_DRAWS_BY_ONE
  D:\cocos2d-x-2.2.5\cocos2dx\include\ccMacros.h(249):#define CC_INCREMENT_GL_DRAWS(__n__) g_uNumberOfDraws += __n__
  D:\cocos2d-x-2.2.5\cocos2dx\layers_scenes_transitions_nodes\CCLayer.cpp(796):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\misc_nodes\CCMotionStreak.cpp(358):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\misc_nodes\CCProgressTimer.cpp(546):            CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\misc_nodes\CCProgressTimer.cpp(549):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\particle_nodes\CCParticleSystemQuad.cpp(407):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\sprite_nodes\CCSprite.cpp(607):    CC_INCREMENT_GL_DRAWS(1);
  D:\cocos2d-x-2.2.5\cocos2dx\textures\CCTextureAtlas.cpp(685):    CC_INCREMENT_GL_DRAWS(1);
  匹配行: 21    匹配文件: 10    合计搜索文件: 772

到这里可以得出大概结论,每当做一次绘制(什么绘制我不知道,只是从名字上推断应该是绘制)帧数+1.
但是到达这里后我再次找不到线索。所以我走不下去了。。特来此请教
Q1:m_dAnimationInterval是如何控制帧率的?
Q2:为什么我设置帧率大于60后设置无效?
补充说明:因为我的电脑是x250CPU+NVIDIA GEFORCE 7025/NVIDIA NFORCE 630a 显卡,最开始我怀疑是硬件影响,然后我进入init函数删除所有的渲染。。但是还是帧率大于60设置无效。基本排除硬件影响。

另外再问下,发表帖子的问题栏下面。有这么一句“如果您的问题是关于技术内容的我们推荐您发到 CocoaChina问答中心”。然后我就点链接进去了。当我码好字准备发出提问的时候。系统告诉我我被禁言了。。这怎么破。。

http://t.sohu.com/p/u/1855715420
http://t.sohu.com/p/u/1855997970
http://t.sohu.com/p/u/1855786486
http://t.sohu.com/p/u/1855998616
http://t.sohu.com/p/u/1855998880
http://t.sohu.com/p/u/1855786596
http://t.sohu.com/p/u/1855786630
http://t.sohu.com/p/u/1855999720
http://t.sohu.com/p/u/1855786700
http://t.sohu.com/p/u/1855786774
http://t.sohu.com/p/u/1855786800
http://t.sohu.com/p/u/1856000422
http://t.sohu.com/p/u/1856000726
http://t.sohu.com/p/u/1856001006
http://t.sohu.com/p/u/1855949116
http://t.sohu.com/p/u/1856001534
http://t.sohu.com/p/u/1856001808
http://t.sohu.com/p/u/1855952390
http://t.sohu.com/p/u/1855952542
http://t.sohu.com/p/u/1855952780
http://lyknpxdyy.t.sohu.com/
http://lyknpxzhdyy.t.sohu.com/
http://lyknpxhdyy.t.sohu.com/
http://lyknpxbjhdyy.t.sohu.com/
http://lyknpxxghdyy.t.sohu.com/
http://lyknpxxgzhyy.t.sohu.com/
http://lyzhdnpxzkyy.t.sohu.com/
http://lybjhnpxzkyy.t.sohu.com/
http://lynpxzkyydz.t.sohu.com/
http://lynpxzkyydh.t.sohu.com/
http://lynpxzkyypm.t.sohu.com/
http://lyznpxhdzkyy.t.sohu.com/
http://lyzyzlnpxdyy.t.sohu.com/
http://lyzkznpxzhyy.t.sohu.com/
http://lynpxzzhzkyy.t.sohu.com/
http://lyknpxzkyy.t.sohu.com/
http://lyknpxhdzkyy.t.sohu.com/
http://lyknpxzhzkyy.t.sohu.com/
http://lynpxyynjh.t.sohu.com/
http://lynpxyynlh.t.sohu.com/
http://user.qzone.qq.com/3045517236/main
http://user.qzone.qq.com/3046415535/main
http://user.qzone.qq.com/3067993775/main
http://user.qzone.qq.com/3057635571/main
http://user.qzone.qq.com/3067564459/main
http://user.qzone.qq.com/3061885947/main
http://t.qq.com/zzngyyznpx
http://t.qq.com/zznjyyznpx
http://t.qq.com/zznpxyynghao
http://t.qq.com/zzyxbzkyyuan
http://t.qq.com/zkzhdyxbyy
http://t.qq.com/zknpxyynghao
http://t.sohu.com/p/u/1855997002
http://t.sohu.com/p/u/1855996046
http://t.sohu.com/p/u/1855998064
http://t.sohu.com/p/u/1855996134
http://t.sohu.com/p/u/1855998966
http://t.sohu.com/p/u/1855996198
http://t.sohu.com/p/u/1855996222
http://t.sohu.com/p/u/1855996234
http://t.sohu.com/p/u/1856000638
http://t.sohu.com/p/u/1855996332
http://t.sohu.com/p/u/1855996364
http://t.sohu.com/p/u/1855996404
http://t.sohu.com/p/u/1856002252
http://t.sohu.com/p/u/1856002648
http://t.sohu.com/p/u/1856003090
http://t.sohu.com/p/u/1855996570
http://t.sohu.com/p/u/1856003928
http://t.sohu.com/p/u/1855996644
http://t.sohu.com/p/u/1855996682
http://t.sohu.com/p/u/1856007168
http://sqznpxzhzkyy.t.sohu.com/
http://sqzyzlnpxdyy.t.sohu.com/
http://sqzkznpxzhyy.t.sohu.com/
http://sqnpxzzhzkyy.t.sohu.com/
http://sqnpxyynjh.t.sohu.com/
http://shangqqinpxyyngh.t.sohu.com/
http://sqnpxyynlh.t.sohu.com/
http://sqnpxyynjzh.t.sohu.com/
http://sqnpxyyngzh.t.sohu.com/
http://sqnpxyynlzh.t.sohu.com/
http://sqnpxyynjbjh.t.sohu.com/
http://sqnpxyyngbjh.t.sohu.com/
http://sqnpxyynlbjh.t.sohu.com/
http://sqnjnpxyyh.t.sohu.com/
http://sqngnpxyyh.t.sohu.com/
http://sqnldnpxyyh.t.sohu.com/
http://shangqiunjnpxyyz.t.sohu.com/
http://sqngnpxyyzh.t.sohu.com/
http://sqlidnpxyyzh.t.sohu.com/
http://sqnjnpxyybjh.t.sohu.com/
http://user.qzone.qq.com/2693863435
http://user.qzone.qq.com/1658834714
http://user.qzone.qq.com/3084377961
http://user.qzone.qq.com/3084924129
http://user.qzone.qq.com/1687394909
http://user.qzone.qq.com/3088950027

:12::12::12::12::12::12::12::12::12::12::12::12::12::12:
难道今天周六大家都休息了么,,就没人出来帮忙讲解下么。唯一一个回帖的居然是个广告贴

:6::6::6::6::6::6::6::6:满地打滚求帮忙啊

:6::6::6::6::6::6::6::6::6::6::6: 就当刷帖子赚分好了

:6: :6: :6: :6: :6: :6: :6: :6: 满地打滚求抱抱

:2::2::2::2::2::2::2:例行顶贴

因为手机屏幕的刷新率就是60Hz,这个是LCD上芯片控制的,也就是设备驱动控制的,当然这个芯片的刷新是可以改的,不过一般都设置为60Hz

可是我实在PC上运行的啊

你pc上的显示器刷新分辨率应该也是60HZ吧

嗯,谢谢,确实是刷新频率的问题!那么请问下m_dAnimationInterval这个变量是如何设置控制帧率的呢?我在代码中没有找到具体与之相关的控制

CCApplication.cpp

while(!glview->windowShouldClose())
{
    QueryPerformanceCounter(&nNow);
    if (nNow.QuadPart - nLast.QuadPart > _animationInterval.QuadPart)
    {
        nLast.QuadPart = nNow.QuadPart;
        
        director->mainLoop();
        glview->pollEvents();
    }
    else
    {
        Sleep(0);
    }
}

差不多找到了,O(∩_∩)O谢谢