Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

202 Подсчет очков и вывод текста на экран

Рис. 11.2. Выбор диапазона символов и букв

<CharacterRegion> <! —

Arial для кириллицы — >

<Start>&#1040;</Start> <End>&#1103;</End>

</CharacterRegion>

Самое интересное заключается в том, что на разных компьютерных системах этот диапазон может изменяться. Например, на моем ноутбуке, работающем под управлением Windows XP Home, для шрифта Tahoma русские буквы определены в диапазоне от 1040 до 1103. Тогда как на компьютере под управлением Windows XP Professional этот диапазон уже задается от 1050 до 1190 (включая некоторые символы). Дополнительно для разных шрифтов может существовать свой диапазон чисел, поэтому при создании файла шрифта необходимо точно знать эти данные.

Что будет, если вы неправильно укажите диапазон чисел? Импортер Content Pipeline в соответствии с вашими установками «выдернет» из шрифта именно те символы и буквы, которые лежат в заданном вами диапазоне, и на базе этих данных создаст шрифт в формате XNB. Здесь проблем нет, все будет нормально работать. А вот когда вы напишите в игре строку текста с не существующими в шрифте буквами, то ваше приложение элементарно не запустится или зависнет/закроется в момент вывода той или иной строки текста на экран, поскольку нет таких букв в созданном вами шрифте. Если у вас возникает именно такая ошибка, то, значит,

Работа с текстом в XNA Game Studio Express 203

вы неправильно задали в файле *.spritefont диапазон выбора символов и букв для используемого в игре шрифта.

ФИе путайте диапазон чисел (для той же кириллицы) в кодировке ASCII и Unicode. Для ASCII это будут уже совсем другие числа. Например, в программе X-Font (рис. 11.2) для Unicode определена вкладка Char Map Unicode, а для ASCII - вкладка Char Map ASCII. С нелатинским алфавитом нужно работать исключительно в кодировке Unicode.

Таким нехитрым образом можно создать любое количество шрифтов в игре для любых языков народов мира (рис. 11.3). Если вас не устраивают системные шрифты, то вы можете создать свои собственные или воспользоваться сторонними разработками, но не забывайте о лицензировании шрифтов.

Рис. 11.3. Азиатские иероглифы

11.1.2. Загружаем шрифт в игру и рисуем на экране текст

После того как файл шрифта создан, нужно написать исходный код для его загрузки в программу. Продолжим рассматривать виртуальный пример со шрифтом Arial. Первым делом в исходном коде программы необходимо создать объект класса SpriteFont. Этот системный класс как раз и дает возможность работать со шрифтом в новой версии XNA Game Studio Express 1.0 Refresh.


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz