0

I am getting some weird distortion of my CCLabelBMFont labels in Cocos2D, as noted here:

example example

The distortions appear on both iPad device and simulator. Notable points about this:

  • I have other labels using the same font file that are not showing this
  • I have made sure the coordinates of the labels are all integers, no floats
  • there is no scaling of the labels
  • I have tried with and without [label.texture setAliasTexParameters]; no difference
  • If I move the label to a different coordinate, it sometimes corrects the distortion

Any idea what could be going on?

UPDATE: I changed my label to a TTF label, and the issue remains! Even when no font file is used, the distortion is appearing.

4

2 回答 2

2

在 Cocos2d 论坛上的一些挖掘使我添加了以下内容:

[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];

似乎可以解决问题。任何人都知道这是否有其他不良副作用,因为这不是 Cocos2d 中的默认投影。

更新这仅解决了我在 iOS 4 上的问题,但我的问题在 iOS 5 上仍然存在。我现在看到可以通过调整标签的锚点来消除失真,因此它似乎受到了影响。应该是bug吧?

更新 2事实证明,我的症状是由两种不同的事情引起的。事实上,投影确实对某种失真和所有 iOS 版本产生了影响,所以上面的代码很有用。但其次,我发现了一个设置字体标签位置的条件语句,它并不总是创建整数坐标。因此,通过将坐标的和部分放在(int)前面,问题就解决了。Sprites 可以处理浮点坐标而不失真,但 CClabels 似乎不能。xy

于 2012-06-14T07:28:34.850 回答
1

在每个字符周围添加一些间距。这通常是由纹理图集中的其他附近字形由于纹理过滤而“渗入”另一个造成的。Glyph Designer 和 Hiero 都允许您指定间距,通常每个字形之间的两个像素值足以止血。

于 2012-06-14T09:38:13.187 回答