スポンサーサイト

■ スポンサー広告 Posted by ひぐま (Higmmer) on -------- at --:--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

XNA FrameworkでWindowsフォントを表示する

■ プログラム Posted by ひぐま (Higmmer) on 2006-09-06 at 00:47:38

◆共有テーマ: ゲーム製作 関連 [ゲーム]

ここ数日XNA Game Studio Expressで遊んでいるのですが、デバッグしたり動作確認したりするのに何かと必要な文字列を表示するクラスが無かったので作ってみました。本当は必要なフォントを予めビットマップ(テクスチャ)化して持っておくべき(*)なんでしょうが、使う文字を全て列挙するのも大変なので今回はWindowsに入っているフォントからSystem.Drawingを使って動的に生成することにしました。必然的にWindows専用になります(´・ω・`)

(*) それを行うクラスが必要な方はこちらにあるBitmapFontクラスを参考にして下さい。

スクリーンショットはこんな感じ。

スクリーンショット - XNA/WindowsFontSample
  • WindowsFontSample.zip (公開終了:必要ならこちらを使って下さい)

上記ファイルを右クリック→拡張子をzipに変えて保存し、中に入っているWindowsFont.csを自分のプロジェクトに追加して下さい。System.DrawingとSystem.Windows.Formsへの参照を追加するのをお忘れなく。

基本的な使い方は次の通り。

WindowsFont winfont = new WindowsFont(graphics, "MS ゴシック", 14); winfont.DrawText(0, 0, Color.White, "ほげほげ");

詳しい使い方はソースコードを参照して下さい。

尚、XNAの次のリリースではフォントを扱うクラスが提供されるらしいです。


(追記) 9/6の昼までにサンプルを落とした方へ

WindowsFont.csのgraphics_DeviceCreatedメソッドに誤りがありました。以下のように修正して下さい。

// 誤 private void graphics_DeviceCreated(object sender, EventArgs e) { GraphicsDevice gd = (GraphicsDevice)sender; OnCreateDevice(gd); } ↓ // 正 private void graphics_DeviceCreated(object sender, EventArgs e) { GraphicsComponent g = (GraphicsComponent)sender; OnCreateDevice(g.GraphicsDevice); }

トラックバック

この記事について書く(FC2ブログユーザー)
※言及リンクの無いトラックバックは無効です

PageTop▲

コメント

PageTop▲

コメントの投稿

 
 
 
 
 
 (後で編集・削除したいなら必須)
 
  

PageTop▲

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。