XNAを使ってみよう


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

XNAとは

ゲーム開発のためのツール。主にC#を使用して使う。作ったものはXP,VISTA、Xbox360,Zune上で動かすことが可能。
http://ja.wikipedia.org/wiki/Microsoft_XNA



簡単なコード例

プロジェクトを作成すると色々出てきますが、主に最初いじくるのは 「Game1.cs」 というファイルのみです。
名前に数字を入れるのは嫌なので名前を「GameMain.cs」に変更しておきます。すると、プロジェクト内で使われている「Game1」クラスの記述が「GameMain」に書き換わります。こりゃ便利。
 「Program.cs」というファイルもありますが、これはエントリポイントで「GameMainクラス」のインスタンスを生成してRun()メソッドで起動させてるだけです。usingステートメントで確実にメモリ解放を行ってます。
Program.cs
ちなみにこのProgramクラスは同一名前空間として定義されているので「GameMain.cs」内に記述されていても全く問題ありません。ていうか分ける意味があまり無いので統合したほうがいいかも?

2Dスプライトの表示

画像を表示させるだけの簡単なコード例を示します。
DrawTexture2D
仕組み的には、XNAが用意してくれている「Microsoft.Xna.Framework.Game」クラスを継承して独自のGameMainクラスをカスタマイズすることでゲームを作成します。
オーバーロードするメソッドは主に以下の6つ

GameMain()
コンストラクタ、厳密にはオーバーロードではありませんが。Initialize()との違いは、最初にしか呼ばれないということ。
void Initialize()
初期化メソッド。リセット時とかにも使えそう?最後に継承元のGame.Initialize()を呼ぶのを忘れずに。
void LoadContent()
データ読み込みメソッド。コンテントとは画像などゲームを構成するデータなどのこと。
void UnloadContent()
読み込んだデータを任意で解放する時に呼び出すメソッドだが、C#ではガーベージコレクタが自動的にいらないメモリを解放してくれるので最初はいじることは無いだろう。
void Update(GameTime gameTime)
更新メソッド。ここで入力に応じてゲームを進める。これも継承元のメソッドを呼ぶのを忘れずに。
void Draw(GameTime gameTime)
描画メソッド。画面に絵を表示させる処理を書く。こいつも継承もとのメソッドを呼ぶべし。


矩形を変形して描画

Draw2DTransForm
真っ白な64x64の画像「white.png」をリソースとして取り込み、それを引き伸ばして描画する。
簡易的なライフ表示とかに使えそう。

画像のアニメーション



XNA3.1に付属しているサンプル「Platformer」を読み解く。

  1. とりあえず「新しいプロジェクト>XNA GameStudio 3.1を選択してPlatformerスターターキット(3.1)」でプロジェクトを作成する。
  2. 適当にデバッグして遊んでみる。Windows用以外にもXbox360用とZune用のプロジェクトがあるので注意。
  3. プロジェクトフォルダの「プロジェクトのルート\bin\x86\Debug\Content\Levels」以下にあるテキストファイルを弄るとステージの変更ができる。色々やってみるべし。


XNA簡単なTips集

リソースに画像を追加する
プロジェクトフォルダ以下の「Content.RootDirectory」で指定した場所に画像を格納。
ソリューションエクスプローラーのContentを右クリック>追加>既存の追加
格納した画像を指定すると、画像のファイル名のみでリソースを指定できるようになる。

タイトルバーの部分の表示を変更したい
「Microsoft.Xna.Framework.Game.Window.Title」の部分に文字列を代入してやればいい。
専用のメソッドを作っておいて、デバッグ情報などを流すと便利。



http://creators.xna.com/en-US/tutorial/collision2drectangle
2Dの当たり判定に関するサンプルコード。シンプルで理解しやすい。


超初心者のXNA入門
主な教科書。XNAのバージョンは3.0。

ひにけにXNA
XNAの最新の情報を 日本語で 更新してくれているBlog。

リンク集
リンク切れのが多い。内容も古め。

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。