Чтобы преобразовать шрифт TrueType в растровое изображение так, как ожидает libtcod, вам следует использовать отдельную библиотеку - рендеринг шрифтов - удивительно сложная задача. FreeType - очень популярная библиотека с открытым исходным кодом для рендеринга шрифтов. Вы можете найти интерфейс Python здесь: http://code.google.com/p/freetype-py/. Вам нужно будет использовать FreeType только в инструменте, который вы будете использовать при разработке своего рогалика, а не в вашей реальной игре.
Во-первых, определите, каких персонажей вы будете использовать в своем рогалике. Определите, как расположить эти символы на листе шрифтов. Вы также можете просто использовать тот же макет, что и на изображении, которое вы разместили - это лист с 32 столбцами, начиная с символа пробела (символ 32).
Используя вашу библиотеку визуализации шрифтов, визуализируйте каждый символ отдельно в желаемом размере. Обратите внимание на размер, созданный для каждого - например, "." будет маленьким, а буква w будет большим, даже при том же размере шрифта. Вы должны рассчитать не только высоту, но и высоту над базовой линией и высоту ниже базовой линии. (Пример: если обе буквы A и g имеют высоту 16 пикселей, возможно, вам все равно понадобится прямоугольник высотой более 16 пикселей, чтобы правильно выровнять оба элемента внутри него - от базовой линии к базовой линии.) Найдите наименьший прямоугольник. размер, который будет соответствовать всем этим размерам - это то, насколько большой должна быть каждая ячейка в вашем листе шрифтов.
Как только вы узнаете, насколько велик будет ваш лист, сделайте еще один проход через все желаемые буквы, чтобы построить растровое изображение, помещая каждую букву в свою ячейку. Что касается Y-позиционирования, все базовые линии должны быть выровнены. Если некоторые символы шире других, вы можете выбрать центрирование или выравнивание по левому краю каждого символа в его ячейке. (У каждого из них есть свои странности - вам действительно понадобится шрифт фиксированной ширины для roguelike.)
Дополнительные советы:
- Используйте сглаживание. Это сделает ваш шрифт более приятным для глаз, чем чистый монохромный.
- Не используйте цвет, визуализируйте шрифт в оттенках серого. libtcod имеет функции для генерации цветного текста из вашей шкалы шрифтов в градациях серого.
- Подумайте, хотите ли вы квадратный шрифт или нет. Преимущество квадратного шрифта в том, что «круги» в вашем мире рогаликов будут выглядеть на экране как круги. Недостатком является то, что квадратные шрифты обычно «некрасивее» и их труднее читать.
person
svk
schedule
10.03.2013