Tag: 帧速率

Cocos2dx 2.1.4游戏,连续性FPS下降,从不恢复

我正在使用cocos2dx 2.1.4创build一个游戏。 它的FPS不断下降,永远不会恢复。 请详细说明如下 关于我做事的方式的背景:关于向下滚动某些形状的游戏,每个形状都由一些方块组成。我有7种块。 所有加载在Sprite Sheet中,并使用这个Sprite Sheet中的这些块创build一个形状。 级别文件由这些形状组成。 我同时加载两个级别在屏幕上和另一个屏幕上,使其无缝滚动。 为了同时加载两个级别,我使用了两个不同的CCSprite游戏批处理节点: CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("56blackglow.plist"); _gameBatchNode1 = CCSpriteBatchNode::create("56blackglow.png", 200); _gameBatchNode1->retain(); this->addChild(_gameBatchNode1,kForeground); _gameBatchNode2= CCSpriteBatchNode::create("56blackglow.png", 200); _gameBatchNode2->retain(); this->addChild(_gameBatchNode2,kForeground); 我面对的问题是,我一直玩的游戏帧率不断下降,从60 fps到10 fps,从不恢复或在不久的将来可能恢复,因为我观察了20分钟,但它太多的时间等待。 我的观察: – 1>我使用时间分析器它显示最大的时间是在draw()调用。 同样,如果我玩的游戏速度非常快,时间的高峰期就会增加,这应该没问题,因为我正在做更多的工作,但是一旦达到高峰,它只能保持在这个高度,即使我离开游戏空闲。 这是正常的吗? 据我说,一旦目前的工作完成,它应该已经恢复到正常的高峰。 2>一些我认为它发生的地方,因为我使用了两个批处理节点,并立即删除其用户的子节点可能会导致它慢,但删除后,它应该运行正常。 给一个想法可以立即从批处理节点中删除10个孩子吗? 有些人说这个过程非常缓慢。 只是为了检查这是否导致问题,我做了: – 而不是去除他们,我只是把儿童的可见性设置为false.But仍然FPS下降,不会恢复。 请分享你的想法。