5

メソッドを使用してXNAで「π、Ω、θ、ξ」のような特殊文字を描画したい のですが、これらの文字がSpriteFontファイルで使用できないSpriteBatch.DrawString()という例外が発生します。これに対する解決策はありますか?

4

1 に答える 1

23

これらの文字をスプライトフォントに含める必要があります。

spritefontファイルには、ギリシャ文字用の別の「領域」が必要です。

<CharacterRegions>
  <CharacterRegion><!-- Normal letters -->
    <Start>&#32;</Start>
    <End>&#126;</End>
  </CharacterRegion>
  <CharacterRegion><!-- Greek letters -->
    <Start>&#913;</Start>
    <End>&#969;</End>
  </CharacterRegion>
</CharacterRegions>

これを含めると、そのスプライトフォントでそれらの文字を表示できるようになります。

spritefontでのギリシャ文字の使用例


文字コード表ツールの使用

これらの文字がどの領域にあるかを見つけるには、にある優れたアプリケーションである文字コード表を使用しAll Programs -> Accessories -> System Toolsます。

文字を選択すると、その文字コードが表示されます。たとえば、オメガ(ω)はU + 03C9で、16進数の0x03C9または10進数の969です。


文字領域を定義するさまざまな方法

SpriteFontファイルでリージョンを定義する方法は3つあり、それらはXMLで文字を記述する3つの方法に関連しています。

  • 10進表現:すなわち&#126;-形式は&#nnnn;
  • 16進表現:つまり&#x7E;、-形式は&#xnnnn;
  • 実際のキャラクター:すなわち~

これらは、同じものをXMLで記述する3つの方法であるため、さまざまな方法を使用してリージョンを定義できます。上記は地域の小数表現です。

これは16進表現で、文字コード表から取得するのが最も簡単です。

ここに画像の説明を入力してください

最後に、実際の文字を使用して地域を定義できます。文字コード表ツールのテキストボックスからコピーして貼り付けることで、地域を取得できます。

ここに画像の説明を入力してください

于 2012-11-06T11:40:50.033 に答える