И так вот что получилось.
Сначала о разборе формулы
На самом деле это расшифровка того что в байте хранится 2-а значения, первое (byte & 0x0F) получают по маске 0x0F (то есть первые 4 бита), а второе (byte >> 4) получают смещением на 4 бита вправо (то есть вторые 4 бита сдвигают на место первых).
В общем, как и говорил Figec, один байт содержит 2-а значения (ширина и отступ). Но есть один нюанс с шириной, так как 4 бита вмещают значения от 0 до 15 а ширина поля под символ 16 то приняли что ширина хранящаяся в bin файле увеличивается на 1. То есть если в bin файле хранится 6 то ширина символа (строго говоря это не ширина символа а расстояние от начала поля до конца символа) равна 6+1=7.
Теперь что проделал я.
1. Написал программу, которая загружает изображение и bin файл и позволят визуально выставить все значения, после чего сохранить изменения в bin файл.
2. Попробовал создать тестовый шрифт, Все буквы отображаются как положено (не обрезаются), но если выбрать русский шрифт то выравнивание «по центру» в игре (например в меню или на табличках) работает как то странно. Сдвигает строку влево, причем, чем больше символов, тем больше смещается. Подробно на скриншотах. А вот на английском языку все прекрасно выравнивается.
Странно еще и то, что смешается не только русские буквы но и английский и цифры. И на некоторых языках (не только на английском) все тоже ровно, а на других (не только русском) смещается.
3. Линии нужно расставлять как на первом скриншоте, зелёная перед символом красная после него.
Выкладываю программу
Скриншоты
[spoiler]
[/spoiler]
Скачать
https://dl.dropbox.com/u/49359369/FontB … Editor.exe
Пояснения по программе:
1. Изображения, распакованные из игры она почему то корректно не открывает (да и программа для просмотра изображений у меня их тоже не открывает нормально), а вот после редактора (GIMP) все открывается как положено.
2. После загрузки изображения и bin файла не забудьте выбрать/проверить «номер редактируемого шрифта» (в имени файла он указан вместо XX glyph_XX.png).
Если будут вопросы по программе, спрашивайте здесь или на почту (адрес в Помощь -> О программе).
ps Добавлена кнопка "Автоматически" которая автоматически задает отступ и ширину по картинке.
Скриншоты из игры показывающие смещение текста
[spoiler]Английский язык
Русский язык
[/spoiler]
Тестовый шрифт
https://dl.dropbox.com/u/49359369/FontB … t_test.zip
Зеркала
https://www.dropbox.com/sh/697uz4b8qxr6lsj/yLq5NKf34f
PS Figec с твоими шрифтами русский текст на табличках не отображается нормально, это я что то не так делаю или шрифты не закончены?
Отредактировано BigSpy (2012-09-15 01:11:22)