|  連載 .NET&Windows Vistaへ広がるDirectXの世界 第4回 XNA Game Studio Expressを触ってみよう!NyaRuRu Microsoft MVP Windows - DirectX(Jan 2004 - Dec 2006) 2006/11/01 | 
|  | 
2. XNA Game Studio Expressベータ版を使ってみよう
XNA Game Studio Expressベータ版をインストールすると、VC# Expressのプロジェクト・テンプレートに、新しいテンプレートが追加されている。
|  | 
| XNAインストール後のプロジェクト・テンプレート | 
| 次の3つが追加されている。 ・「Windows Game (XNA)」……ゲーム・アプリケーションのひな型。 ・「Windows Game Library (XNA)」……ゲーム・コンポーネントのひな型。 ・「Spacewar Starter Kit」……サンプル・ゲーム。 | 
また、ヘルプも項目が増えていることに気付くだろう。
|  | 
| XNA Game Studio Expressベータ版をインストールすると追加されるヘルプ | 
| MDX時代には、ドキュメントが少なすぎるといわれ続けていたが、XNAでは非常に丁寧なドキュメントが最初から付属している。ざっとすべての文章に目を通した後で、“Your First XNA Game”からトライしてみるとよいだろう。 | 
ドキュメントの“Your First XNA Game”で紹介されている手順のうち、画像を表示する部分までを簡単に眺めてみよう。まず、プロジェクト・テンプレートから「Windows Game (XNA)」を選択する。
今回は、ドキュメントの“Your First XNA Game”で紹介されている手順を若干変更し、アルファ・チャンネルを使用した画像を表示してみることにする。今回用意したのは次の画像だ。この画像をPNG形式のままブラウザから保存してもらうと、この記事の手順を再現できるはずである。
|  | 
| テスト画像(XNA.png) | 
| 透明部分と影にアルファ・チャンネルが使用されている。 | 
ファイルの追加はソリューション・エクスプローラに画像をドラッグ・アンド・ドロップするだけだ。ファイルが追加できたら、実行時に出力ディレクトリにコピーされるように設定を変更しておく。
|  | ||||||
| [出力ディレクトリにコピー]の設定 | ||||||
| ソリューション・エクスプローラで、実行時に出力ディレクトリにコピーされるように設定する。 | ||||||
| 
 | 
これで画像の準備はOKである。もちろん、自分で好きな画像を用意してもらっても構わない。
次に、先ほど追加した画像を表示するためのコードを追加する。ソリューション・エクスプローラで「Game1.cs」という項目を右クリックしてコンテキスト・メニューを表示し、そこから[コードの表示]を選ぶことでメイン(=ゲーム本体)のソース・コードが表示される。
初期状態のソース・コードは50行ほどで、ほぼ1画面に収まる程度の非常に簡潔なものになっている。XNAのアプリケーション・モデルは、ゲーム本体を表すクラス(本稿では「Game1」クラス)をGameクラス(Microsoft.Xna.Framework名前空間)から派生させ、メソッドをオーバーライドしたり、イベントを追加したりして、差分をプログラミングしていくという方針を取っている。
本稿では、このソース・コードに対して、以下のようなコードを追加する。コードの意味については説明欄を参照してほしい。
| 
 | |
| ひな型のソース・コードに対して追加するコード | |
| プロジェクトの新規作成で生成されたひな型のコードに対して、太字部分のコードを追加してほしい。ここでは、OnStartingメソッドをオーバーライドすることで、ゲーム開始時に「XNA.png」画像を読み込むようにしている。またそれと同時に、描画デバイスがリセットされたときに発生するDeviceResetイベントのハンドラを登録し、そのDeviceResetイベント・ハンドラ内で再度「XNA.png」画像を読み込み直すようにしている。 | 
最後に、ひな型としてあらかじめ追加されているDrawメソッド内部で、上記のコードで読み込んだ「XNA.png」画像を描画すればよい。具体的には以下の行(太字部分)を追加すれば完成だ。
| 
 | |
| Drawメソッドに追記するコード | |
| 太字部分を追加する。このコードは、アルファ・ブレンディングにより「XNA.png」画像を描画している。“Your First XNA Game”で紹介されている方法とは異なり、spriteBatch.Beginのところでアルファ・ブレンディングを有効にしている点に注意。 | 
以上のコードを実行して、下の画像が表示されれば成功だ。
|  | 
| サンプル・プログラムの実行結果 | 
| 「XNA.png」画像をアルファ・ブレンディングで描画している。 | 
無事に画像が表示できたら、キーボードやコントローラによって移動させてみたり、もっとたくさんの画像を表示させてみたりと、いろいろ試してみるとよいだろう。これにはドキュメントの“Programming Guide”が参考になる。また、Web上には、すでにさまざまなサンプル・コードがアップロードされている。それらを参考に、皆さんもXNAの世界に飛び込んでいってみてほしい。
|  |  | 
| INDEX | ||
| .NET&Windows Vistaへ広がるDirectXの世界 | ||
| 第4回 XNA Game Studio Expressを触ってみよう! | ||
| 1.XNA Game Studio Expressベータ版のインストール | ||
| 2.【コラム】DirectX SDKのインストールとデバッグへの応用 | ||
|  | 3.XNA Game Studio Expressベータ版を使ってみよう | |
| 4.【コラム】VC# Expressで出力アセンブリのプラットフォームを設定する | ||
|  | ||
|  | 「.NET&Windows Vistaへ広がるDirectXの世界」 | 
- 第2回 簡潔なコーディングのために (2017/7/26)
 ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
- 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
 Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
- 第1回 明瞭なコーディングのために (2017/7/19)
 C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
- Presentation Translator (2017/7/18)
 Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|  | |
| 
 | |
|  | 

 









