cocos2d-x帧率显示那个label的实现方法为啥那么奇怪?

我用的cocos2d-x版本是2.2。
帧率显示那个label跟正常label的实现方式貌似很不一样(反正我没看懂),而且经常引发问题,比如导致显示不正常,图片错位、纹理丢失、甚至崩溃等。
自己改过一次,后来很长一段时间没再出问题,可是这回又出了,而且更奇怪,这回变成不显示那label时会出问题。
为什么引擎不改用更通俗易懂的方式来实现帧率显示呢?

不使用LabelTTF是担心效率太低。不过到没有遇到你说的那个问题。
具体是什么情况下出的问题,方便给个重现的代码吗?

哦,不好用简单代码重现,公司这个项目东西太多了还搅在一起,而且有些地方绕过cocos2d-x直接用opengl画的。所以问题可能比较复杂。。。也许,未必是那label本身的问题,不过貌似经常有bug会嫁祸给它。如果以后面遇到简单的重现方法,我再来报告。
另外我希望引擎代码好懂些,看起来不要太伤脑筋。

似乎有这样一个问题:
比如我将一个sprite的blendFunc设置为(GL_XXX,GL_YYY),那么这个sprite画完后opengl的blendFunc状态是不会自动恢复的,如果接下来要画的sprite2我重载了其draw函数,其中使用自己写的绘图语句,而且在其中没有用glBlendFunc(或者ccGLBlendFunc)来设置混合函数,那么sprite2就会直接使用前面sprite的混合函数(GL_XXX,GL_YYY)来绘制,其得到的结果可能不是我们想要的。
也就是说如果重载节点的draw函数的话,一定要想着在其中手动调用glBlendFunc(或者ccGLBlendFunc),否则是不安全的。
我上面的说法对吗?希望得到大侠确认。

ls想要一些更改了得GL状态回复到cocos2d正常的状态。

OpenGL是一个状态机,如果自己调用OpenGL函数改变了的话,是会影响到之后所有的OpenGL操作的。

— Begin quote from ____

引用第5楼minggo于2014-02-18 13:49发表的 :
OpenGL是一个状态机,如果自己调用OpenGL函数改变了的话,是会影响到之后所有的OpenGL操作的。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=182302&pid=889296

— End quote

恩,了解了,我前面说的bug是由于opengl状态没设置好造成的,虽然不明白为什么会跟帧率显示扯上关系,不过正确设置状态后一切正常了。