文字を描画する

SpriteFont

MonoGameで文字列を描画するときもwavサウンドを再生するときと同じようにxnb形式にコンパイルする必要があります。

XNAGameStudio4.0.4をまだインストールしていない人もしくはコンテンツビルド用プロジェクトを作成していない人は「サウンドを再生する」を参照して、インストールとコンテンツビルド用のプロジェクトを作成してください。

 

MonoGameにおいて文字を描画するためのフォントはSpriteFontと呼ばれ、xml形式で記述された文章にフォントの名前や特徴を記入し、xnbにコンパイルします。

80

 

 

SpriteFontを作成する

ではコンテンツビルド用プロジェクトに新しくSpriteFontを作成しましょう。

DummyProjectContentプロジェクトを右クリックして、追加→新しい項目を押します。

81

 

 

VisualC#からSpriteFontを選択し、SpriteFontの名前を入力し、OKを押します。

82

 

 

SpriteFontが作成できたことが確認できたら、一度DummyuProjectの方をビルドしましょう。

83

84

 

 

ではコンパイルできたxnbファイルを取得します。

DummyProjetを右クリック→「エクスプローラでフォルダーを開く」を押します。

85

 

DummyProject/Bin/X86/Debug/Contentディレクトリに入っているTestFont.xnbファイルをデスクトップにコピーしておきましょう。

86

 

 

ではMonoGameの方のProjectに戻り、Contentフォルダを右クリックして追加→既存の項目を押し、先ほどデスクトップにコピーしたSpriteFontのxnbファイルを追加しましょう。

87

 

 

コンパイル済みSpriteFontを追加することができました。

88

 

TestFont.xnbのプロパティウインドウから、ビルドアクションを「コンテンツ」にしましょう。

90

 

SpriteFontを描画する

では先ほどつくったSpriteFontを使って実際に文字列を描画します。

Game1.csのメンバにSpriteFontクラスを追加します。

 

LoadContentメソッドでSpriteFontを読み込みます。

 

DrawメソッドではSpriteBatchのBeginとEndの間にDrawStringメソッドで第一引数にSpriteFont、第二引数に描画したい文字列(英字文字列)をいれます。

 

文字を描画することができました。

89

 

 

 

日本語文字について

日本語文字列の描画については現時点では私が解決方法を見いだせなかったので対応できていません。

よって現時点では日本語を描画したい場合は一度画像にし、画像として描画するしか方法がありません。

ゲームにおいて日本語は定型文として画像として描画し、高速で普遍的なスコアなどはSPriteFontで描画するとよいと思います。

 

しかし、DxToolkitのサイトを見てみると日本語SpriteFontで描画している例があるのでなにか方法があるのかもしれません

DxToolkit – SpriteFont

サンプルコード

SampleGameMono_4_StringDraw.zip

目次