2

我正在为 iPhone 编写一个复古类型的游戏,并且需要将像素风格的字体渲染到屏幕上。但是,当我在模拟器中运行它时,它看起来又漂亮又锐利,但当我在设备上运行它时却不是。有什么方法可以禁用字体的抗锯齿功能?我已经尝试过这个:

CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetShouldSmoothFonts(c, FALSE);
CGContextSetShouldAntialias(c, FALSE);
CGContextSetAllowsAntialiasing(c, FALSE);

另外,我正在使用来自http://github.com/zynga/FontLabel/tree/master的字体渲染类

4

2 回答 2

4

想通了,当我旋转 UIView 以在横向模式下绘制时,我没有为 PI 使用足够的数字(3.14159 vs 3.14159265),并且修复了它。^^

于 2010-03-11T23:53:02.590 回答
1

确保层次结构中通向文本绘制位置的视图和/或图层与完整的像素边界((10.0、20.0)等)对齐。这会导致绘制的文本模糊。

此外,查看 FontLabel 的代码,我认为它没有考虑到 Quartz 绘图与半像素坐标对齐的事实(例如,您需要在 (10.5, 20.5) 处绘制以获得清晰的特征)。我不太确定在哪里纠正这个问题,但是您可以尝试在 X 和 Y 中将其point移入-drawTextInRect:半个像素,看看是否可以清除字体图。

于 2010-03-11T16:07:23.123 回答