扭曲的字体

时间:2012-06-14 06:01:16

标签: cocos2d-iphone

我在Cocos2D中得到了一些奇怪的CCLabelBMFont标签失真,如下所示:

example example

iPad设备和模拟器上都会出现扭曲现象。值得注意的一点:

  • 我有其他标签使用相同的字体文件但未显示此
  • 我确保标签的坐标都是整数,没有浮点数
  • 标签没有缩放
  • 我尝试过使用和不使用[label.texture setAliasTexParameters];无差异
  • 如果我将标签移动到不同的坐标,有时会纠正失真

知道会发生什么事吗?

更新:我将标签更改为TTF标签,问题仍然存在!即使没有使用字体文件,也会出现失真。

2 个答案:

答案 0 :(得分:2)

在Cocos2d论坛上的一些挖掘让我添加了这个:

[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];

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

UPDATE 这解决了我在iOS 4上的问题,但我的问题仍然存在于iOS 5.我现在看到可以通过调整标签的锚点来消除失真,所以它似乎受此影响。可能是一个错误?

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

答案 1 :(得分:1)

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