Cocos2d iphone 在Cocos2D中创建一个会不断更改其文本的标签的最佳方法是什么?

Cocos2d iphone 在Cocos2D中创建一个会不断更改其文本的标签的最佳方法是什么?,cocos2d-iphone,Cocos2d Iphone,我知道更改CCLabel的文本非常耗时,因此无法在每一帧都进行更改。那么,我如何才能做到这一点呢?还没那么糟糕。如果你有一个标签,你真的需要改变它的每一帧,我会继续尝试。您可能没有注意到任何问题。但是,如果您确实注意到速度减慢,您可以(a)使用更快的CCLabelAlas,或者(b)设置一个计数器,跟踪自上次更新以来经过的帧数,因此您只需每隔2、3或5帧进行一次更新。这并不是那么糟糕。如果你有一个标签,你真的需要改变它的每一帧,我会继续尝试。您可能没有注意到任何问题。但是,如果您确实注意到速度减

我知道更改CCLabel的文本非常耗时,因此无法在每一帧都进行更改。那么,我如何才能做到这一点呢?

还没那么糟糕。如果你有一个标签,你真的需要改变它的每一帧,我会继续尝试。您可能没有注意到任何问题。但是,如果您确实注意到速度减慢,您可以(a)使用更快的CCLabelAlas,或者(b)设置一个计数器,跟踪自上次更新以来经过的帧数,因此您只需每隔2、3或5帧进行一次更新。

这并不是那么糟糕。如果你有一个标签,你真的需要改变它的每一帧,我会继续尝试。您可能没有注意到任何问题。但是,如果您确实注意到速度减慢,您可以(a)使用更快的CCLabelAlas,或者(b)设置一个计数器,跟踪自上次更新以来经过的帧数,因此您只需每隔2、3或5帧进行一次更新。

我的理解是,当您必须定期更新一个级别时,一般建议(对于分数等)是使用CCLabelBMFont。CCLabelBMFont使用位图字体文件,因此它只会在屏幕上绘制一次,然后可以根据需要替换数字或字母。除了完全静态文本之外,你真的不应该使用CCLabelTTF,所以CCLabelBMFont将是你的选择

*编辑

在担心图像之前,您需要确保在AppDelagate中取消注释这些行:

//if( ! [director enableRetinaDisplay:YES] )
    //CCLOG(@"Retina Display Not supported");

然后,当您创建.fnt和.png时,请确保创建第二个.fnt和.png,这是您创建的原始字体的两倍大,并在名称后附加-hd。因此,您的文件应该看起来像“original.fnt”“original.png”“original hd.fnt”“original hd.png”

我的理解是,当您必须定期更新某个级别(分数等)时,一般建议是使用CCLabelBMFont。CCLabelBMFont使用位图字体文件,因此它只会在屏幕上绘制一次,然后可以根据需要替换数字或字母。除了完全静态文本之外,您真的不应该使用CCLabelTTF进行任何操作,所以CCLabelBMFont将是适合您的方法

*编辑

在担心图像之前,您需要确保在AppDelagate中取消注释这些行:

//if( ! [director enableRetinaDisplay:YES] )
    //CCLOG(@"Retina Display Not supported");

然后,当您创建.fnt和.png时,请确保创建第二个.fnt和.png,这是您创建的原始字体的两倍大,并在名称后附加-hd。因此,您的文件应该看起来像“original.fnt”“original.png”“original hd.fnt”“original hd.png”

CCLabelBMFont支持视网膜显示吗?我如何使用它来支持它?@NachoSoto是的,它支持它,我的理解是,你只需保存一个字体文件,该文件的大小是original.fnt的2倍,即original-hd.fnt,然后它就可以运行了。还有纹理?相同的文件名格式?这对我不起作用:/CCLabelBMFont支持吗port retina display?我如何使用它来支持它?@NachoSoto Yea它支持它,我的理解是,你只需将一个字体文件保存为original.fnt的2倍大,即original-hd.fnt,然后它就可以运行了。还有纹理?相同的文件名格式?这对我不起作用:/