NoX World - форум об игре NoX

 
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  
Сейчас онлайн стрима нет!
Сейчас на сервере никого нет!

Обязательно все ознакомьтесь с новыми Правилами Портала!

Актуальные новости:
IP сервера изменён! Новый IP: 45.144.64.229. Сервер также доступен через Westwood Online (XWIS, игру через сервер)


Важные темы:
Как играть по сети? Понятное руководство!
Правила Сервера NoxWorld.
Как помочь форуму финансово?

Автор Тема: Разбор шрифтов от Garett'a  (Прочитано 28775 раз)

0 Пользователей и 4 Гостей смотрят эту тему.

Garett

  • Langrisser
  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 667
  • Awards Лучшая карта 5 конкурса карт Сложность исполнения 5 конкурса карт Выбор администрации 5 конкурса карт Лучший геймплей 5 конкурса карт Мастер нестандартных карт - 2013 За написание статей Методист 2012 4 конкурс карт - победа
    • Просмотр профиля
    • Garett#9853
    • Awards

Частичный разбор заголовка.
Семантика некоторых значений, определенных в начале файлов default.fnt и large.fnt (small.fnt по содержимому совпадает с default.fnt).

Содержание файла default.fnt:
0000: 74 4E 6F 46 01 00 00 00
0008: 09 00 00 00 02 00 00 00
0010: 09 00 00 00 01 00 00 00
0018: 13 00 00 00 00 00 00 00
0020: 20 00 FF 00 03 00 00 00
0028: 00 00 00 00 00 00 00 00
0030: 00 00 00 00 00 00 00 01
0038: 80 00 80 00 80 00 80 00
0040: 80 00 00 00 80 00 00 00
0048: 00 00 03 ..

Для удобства представления, разделение на строки (кратность по 4 байта не обоснована ничем):
74 4E 6F 46 01 00 00 00 09 00 00 00
02 00 00 00 09 00 00 00
01 00 00 00
13 00 00 00
00 00 00 00
20 00 FF 00
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 80 00 80 00 80 00 80 00 80 00 00 00 80 00 00 00 00 00
03 ..

Седьмая строка (первая длинная) и ниже - изображения символов.
Разбор выделенных.

02 00 00 00 09 00 00 00
02 00 00 00 - обозначает количество байт, отведенное для ширины каждого символа. Один бит эквивалентен одной точке по ширине. Т.е. значение "02" предполагает, ширина изображения символа не более 16 точек. Как разобрано выше, ширина (в точках) конкретного символа, отображаемого в игре, задается значением байта, размещенного непосредственно перед самим изображением.
09 00 00 00 - обозначает максимальную высоту символа в точках. Значение "09" предполагает, что высота изображения символа не более 9 точек.

Все символы в файле default.fnt должны быть умещены и закодированы в картинке 9х16 точек. Все неиспользуемые байты оставляются нулевыми, но они обязательно должны быть.

13 00 00 00
13 00 00 00 - обозначает общее количество байт, выделяемых для предствавления изображения одного символа. В него входит байт относительной длины символа "+" все байты самого изображения.

20 00 FF 00
20 00 - изображение какого по порядку символа (видимо, таблицы ASCII) будет первым. Выше можно видеть, что первый символ в файле - это " ", а второй "!", таблица ASCII подтверждает значение "20" - пробел, "21" - восклицательный знак.
FF 00 - номер завершающего символа (предположение, без проверки).

Значения остальных байт мной пока не разобраны.

Содержание файла large.fnt:
0000: 74 4E 6F 46 01 00 00 00
0008: 13 00 00 00 03 00 00 00
0010: 0F 00 00 00 01 00 00 00
0018: 2E 00 00 00 00 00 00 00
0020: 1F 00 FF 00 04 00 00 00
0028: 00 00 00 00 00 00 F0 00
0030: 00 90 00 00 90 00 00 90
0038: 00 00 90 00 00 90 00 00
0040: 90 00 00 90 00 00 F0 00
0048: 00 00 00 00 00 00 00 00
0050: 00 00 04 ..

Для удобства представления, разделение на строки:
74 4E 6F 46 01 00 00 00 13 00 00 00
03 00 00 00 0F 00 00 00
01 00 00 00
2E 00 00 00
00 00 00 00
1F 00 FF 00
04 00 00 00 00 00 00 00 00 00 F0 00 00 90 00 00 90 00 00 90 00 00 90 00 00 90 00 00 90 00 00 90 00 00 F0 00 00 00 00 00 00 00 00 00 00 00
04 ..

Далее разбирать не буду, должно быть и так понятно.
Записан
Маленький потерявшийся волшебничишка.
Расширенный поиск  
 

Страница сгенерирована за 0.137 секунд. Запросов: 20.