Pokud se někdy dostanete do kontaktu s herním XNA enginem, je dost pravděpodobné, že mezi vaše přání bude patřit i vykreslování textů na obrazovku. XNA nabízí možnost použití tzv. spritefontů. Tedy písma, které se při kompilaci vyrenderuje a nás tak nemusí zajímat, zda je písmo na cílovém stroji nainstalováno (v případě Xboxu je to naprosto pochopitelné). Při vytvoření souboru spritefont do složky Content zjistíme, že se jedná o běžný XML soubor definující velikost, typ a rozsahy znaků, které se připraví při kompilaci do projektu.
Pokud se při základním nastavení pokusíte vyrenderovat diakritiku, příliš neuspějete. Implicitní rozsah zahrnutých znaků ji totiž neobsahuje. Získáte tuto chybu:
The character 'ř' (0x0159) is not available in this SpriteFont. If applicable, adjust the font's start and end CharacterRegions to include this character.
Název parametru: character
Připravil jsem proto seznam rozsahů, které zahrnou všechny “české” znaky v podobě malého i velkého písmene:
<CharacterRegion><Start>Á</Start><End>Á</End></CharacterRegion>
<CharacterRegion><Start>Č</Start><End>Č</End></CharacterRegion>
<CharacterRegion><Start>Ď</Start><End>Ď</End></CharacterRegion>
<CharacterRegion><Start>É</Start><End>É</End></CharacterRegion>
<CharacterRegion><Start>Ě</Start><End>Ě</End></CharacterRegion>
<CharacterRegion><Start>Í</Start><End>Í</End></CharacterRegion>
<CharacterRegion><Start>Ň</Start><End>Ň</End></CharacterRegion>
<CharacterRegion><Start>Ó</Start><End>Ó</End></CharacterRegion>
<CharacterRegion><Start>Ř</Start><End>Ř</End></CharacterRegion>
<CharacterRegion><Start>Š</Start><End>Š</End></CharacterRegion>
<CharacterRegion><Start>Ť</Start><End>Ť</End></CharacterRegion>
<CharacterRegion><Start>Ú</Start><End>Ú</End></CharacterRegion>
<CharacterRegion><Start>Ů</Start><End>Ů</End></CharacterRegion>
<CharacterRegion><Start>Ý</Start><End>Ý</End></CharacterRegion>
<CharacterRegion><Start>Ž</Start><End>Ž</End></CharacterRegion>
<CharacterRegion><Start>á</Start><End>á</End></CharacterRegion>
<CharacterRegion><Start>č</Start><End>č</End></CharacterRegion>
<CharacterRegion><Start>ď</Start><End>ď</End></CharacterRegion>
<CharacterRegion><Start>é</Start><End>é</End></CharacterRegion>
<CharacterRegion><Start>ě</Start><End>ě</End></CharacterRegion>
<CharacterRegion><Start>í</Start><End>í</End></CharacterRegion>
<CharacterRegion><Start>ň</Start><End>ň</End></CharacterRegion>
<CharacterRegion><Start>ó</Start><End>ó</End></CharacterRegion>
<CharacterRegion><Start>ř</Start><End>ř</End></CharacterRegion>
<CharacterRegion><Start>š</Start><End>š</End></CharacterRegion>
<CharacterRegion><Start>ť</Start><End>ť</End></CharacterRegion>
<CharacterRegion><Start>ú</Start><End>ú</End></CharacterRegion>
<CharacterRegion><Start>ů</Start><End>ů</End></CharacterRegion>
<CharacterRegion><Start>ý</Start><End>ý</End></CharacterRegion>
<CharacterRegion><Start>ž</Start><End>ž</End></CharacterRegion>
Kód vložte za základní rozsahy v spritefont souboru:
Při vykreslování již žádné další problémy: