最近在了解并使用Cocos2d的一些功能以便在iPhone上画一个页面。然而,在使用其中一个CCBitmapFontAtlas类的时候发现了一些问题。

  该类可以按照一定的字体风格显示字符。使用该类本身并没有什么困难和问题。然而该类所需的字体文件是需要一个.fnt文件和.png文件。当调用该类生成文字时,它会去访问.fnt文件,然后通过.fnt文件里该文字对应的坐标,到.png文件里去寻找相对应的区域,最后将该区域的图片显示到iPhone的界面上。而.fnt文件和.png文件要用Hiero软件生成。问题就在这里产生了。

  第一个问题是一定要从http://www.n4te.com/hiero/hiero.jnlphttp://slick.cokeandcode.com/demos/hiero.jnlp这两个链接去下载。我之前从其它的链接下载了一个Hiero v2.0版,但是使用的时候发现它生成的.png文件里面的内容竟然是反的,在把该文件倒转、保存后,iPhone上显示的界面都正常,因此可以确定是我下载的Hiero软件在生成.png文件的时候有Bug。然后到Cocos2d主页上重新找过,在http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:labels页面上找到上述两个链接。重新下载后生成的.png文件就正常了。

  第二个问题是使用Hiero软件生成.fnt文件和.png文件的时候一定要注意,如果先生成了一对字体文件,保存名字为font_sample.fnt和font_sample.png,然后没有关掉软件,再生成下一对字体文件,无论是覆盖之前的两个文件还是重新生成两个文件如font_sample2.fnt和font_sample.png,你都会发现新的一对字体文件里.fnt文件是更新了,但是.png文件并没有更新,里面的文字还是第一次生成的那个字体。使用这样的一对文件去生成iPhone的界面,只能显示出来一堆不知所谓的线条。然而,如果再生成好第一份字体文件之后,关闭软件,再重新打开,生成第二份字体文件的话,就不会出现该问题,估计可能是Hiero程序在创建新字体的时候没有清掉Cache之类的问题。虽然这样每生成一次字体都要重启一次软件,带来不少麻烦,但好在该软件的使用频率不高,因此还可以忍受。

posted on 2010-09-10 14:09  eagley  阅读(7432)  评论(1编辑  收藏  举报