Отключение сглаживания для шрифтов - PullRequest
2 голосов
/ 11 марта 2010

Я пишу игру в стиле ретро для iPhone, и мне нужно отобразить на экране шрифт в пиксельном стиле. Тем не менее, он выглядит красиво и четко, когда я запускаю его в симуляторе, а не когда я запускаю его на устройстве. Можно ли как-то отключить сглаживание шрифтов? Я уже пробовал это:

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

Также я использую класс рендеринга шрифтов из http://github.com/zynga/FontLabel/tree/master

Ответы [ 2 ]

4 голосов
/ 12 марта 2010

Понял, когда я поворачивал свой UIView для рисования в ландшафтном режиме, я не использовал достаточно цифр для PI (3.14159 против 3.14159265), и это исправило это. ^^

1 голос
/ 11 марта 2010

Убедитесь, что представления и / или слои в иерархии, ведущей вниз к месту рисования текста, выровнены по целым границам пикселей ((10.0, 20.0) и т. Д.). Это может вызвать размытие нарисованного текста.

Кроме того, глядя на код для FontLabel, я не думаю, что он принимает во внимание тот факт, что рисование в Кварце выровнено по полупиксельным координатам (вам нужно нарисовать в (10.5, 20.5), чтобы получить четкие элементы пример). Я не совсем уверен, где это исправить, но вы можете попробовать сместить point в -drawTextInRect: на полпикселя в X и Y и посмотреть, очищает ли это рисунок шрифта.

...