「XNAを使ってみよう」の編集履歴(バックアップ)一覧はこちら
「XNAを使ってみよう」(2009/12/03 (木) 23:32:30) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*XNAとは
ゲーム開発のためのツール。主にC#を使用して使う。作ったものはXP,VISTA、Xbox360,Zune上で動かすことが可能。
http://ja.wikipedia.org/wiki/Microsoft_XNA
----
&bold(){[[XNA導入方法とプロジェクトの作り方]]}
----
**簡単なコード例
プロジェクトを作成すると色々出てきますが、主に最初いじくるのは&bold(){「Game1.cs」}というファイルのみです。
名前に数字を入れるのは嫌なので名前を「GameMain.cs」に変更しておきます。すると、プロジェクト内で使われている「Game1」クラスの記述が「GameMain」に書き換わります。こりゃ便利。
「Program.cs」というファイルもありますが、これはエントリポイントで「GameMainクラス」のインスタンスを生成してRun()メソッドで起動させてるだけです。usingステートメントで確実にメモリ解放を行ってます。
&bold(){[[Program.cs]]}
ちなみにこのProgramクラスは同一名前空間として定義されているので「GameMain.cs」内に記述されていても全く問題ありません。ていうか分ける意味があまり無いので統合したほうがいいかも?
***2Dスプライトの表示
画像を表示させるだけの簡単なコード例を示します。
&bold(){[[DrawTexture2D]]}
仕組み的には、XNAが用意してくれている「Microsoft.Xna.Framework.Game」クラスを継承して独自のGameMainクラスをカスタマイズすることでゲームを作成します。
オーバーロードするメソッドは主に以下の6つ
&bold(){GameMain()}
コンストラクタ、厳密にはオーバーロードではありませんが。Initialize()との違いは、最初にしか呼ばれないということ。
&bold(){void Initialize()}
初期化メソッド。リセット時とかにも使えそう?最後に継承元のGame.Initialize()を呼ぶのを忘れずに。
&bold(){void LoadContent()}
データ読み込みメソッド。コンテントとは画像などゲームを構成するデータなどのこと。
&bold(){void UnloadContent()}
読み込んだデータを任意で解放する時に呼び出すメソッドだが、C#ではガーベージコレクタが自動的にいらないメモリを解放してくれるので最初はいじることは無いだろう。
&bold(){void Update(GameTime gameTime)}
更新メソッド。ここで入力に応じてゲームを進める。これも継承元のメソッドを呼ぶのを忘れずに。
&bold(){void Draw(GameTime gameTime)}
描画メソッド。画面に絵を表示させる処理を書く。こいつも継承もとのメソッドを呼ぶべし。
----
***矩形を変形して描画
&bold(){[[Draw2DTransForm]]}
真っ白な64x64の画像「white.png」をリソースとして取り込み、それを引き伸ばして描画する。
簡易的なライフ表示とかに使えそう。
----
***画像のアニメーション
----
***XNA3.1に付属しているサンプル「Platformer」を読み解く。
+とりあえず「新しいプロジェクト>XNA GameStudio 3.1を選択してPlatformerスターターキット(3.1)」でプロジェクトを作成する。
+適当にデバッグして遊んでみる。Windows用以外にもXbox360用とZune用のプロジェクトがあるので注意。
+プロジェクトフォルダの「プロジェクトのルート\bin\x86\Debug\Content\Levels」以下にあるテキストファイルを弄るとステージの変更ができる。色々やってみるべし。
----
**XNA簡単なTips集
&bold(){リソースに画像を追加する}
プロジェクトフォルダ以下の「Content.RootDirectory」で指定した場所に画像を格納。
ソリューションエクスプローラーのContentを右クリック>追加>既存の追加
格納した画像を指定すると、画像のファイル名のみでリソースを指定できるようになる。
&bold(){タイトルバーの部分の表示を変更したい}
「Microsoft.Xna.Framework.Game.Window.Title」の部分に文字列を代入してやればいい。
専用のメソッドを作っておいて、デバッグ情報などを流すと便利。
&bold(){fpsの表示}
http://blogs.msdn.com/ito/archive/2008/12/27/fps-counter.aspx
----
[[http://msdn.microsoft.com/ja-jp/library/bb197293%28lightweight%29.aspx]]
3Dチュートリアル
[[超初心者のXNA入門>http://sky.geocities.jp/kmaedam/xna/xna.html]]
主な教科書。XNAのバージョンは3.0。
[[ひにけにXNA>http://blogs.msdn.com/ito/default.aspx]]
XNAの最新の情報を&bold(){日本語で}更新してくれているBlog。
[[リンク集>http://www16.atwiki.jp/xna360/pages/10.html]]
リンク切れのが多い。内容も古め。
http://creators.xna.com/ja-JP/
http://msdn.microsoft.com/ja-jp/xna/default.aspx
*XNAとは
ゲーム開発のためのツール。主にC#を使用して使う。作ったものはXP,VISTA、Xbox360,Zune上で動かすことが可能。
http://ja.wikipedia.org/wiki/Microsoft_XNA
----
&bold(){[[XNA導入方法とプロジェクトの作り方]]}
----
**簡単なコード例
プロジェクトを作成すると色々出てきますが、主に最初いじくるのは&bold(){「Game1.cs」}というファイルのみです。
名前に数字を入れるのは嫌なので名前を「GameMain.cs」に変更しておきます。すると、プロジェクト内で使われている「Game1」クラスの記述が「GameMain」に書き換わります。こりゃ便利。
「Program.cs」というファイルもありますが、これはエントリポイントで「GameMainクラス」のインスタンスを生成してRun()メソッドで起動させてるだけです。usingステートメントで確実にメモリ解放を行ってます。
&bold(){[[Program.cs]]}
ちなみにこのProgramクラスは同一名前空間として定義されているので「GameMain.cs」内に記述されていても全く問題ありません。ていうか分ける意味があまり無いので統合したほうがいいかも?
***2Dスプライトの表示
画像を表示させるだけの簡単なコード例を示します。
&bold(){[[DrawTexture2D]]}
仕組み的には、XNAが用意してくれている「Microsoft.Xna.Framework.Game」クラスを継承して独自のGameMainクラスをカスタマイズすることでゲームを作成します。
オーバーロードするメソッドは主に以下の6つ
&bold(){GameMain()}
コンストラクタ、厳密にはオーバーロードではありませんが。Initialize()との違いは、最初にしか呼ばれないということ。
&bold(){void Initialize()}
初期化メソッド。リセット時とかにも使えそう?最後に継承元のGame.Initialize()を呼ぶのを忘れずに。
&bold(){void LoadContent()}
データ読み込みメソッド。コンテントとは画像などゲームを構成するデータなどのこと。
&bold(){void UnloadContent()}
読み込んだデータを任意で解放する時に呼び出すメソッドだが、C#ではガーベージコレクタが自動的にいらないメモリを解放してくれるので最初はいじることは無いだろう。
&bold(){void Update(GameTime gameTime)}
更新メソッド。ここで入力に応じてゲームを進める。これも継承元のメソッドを呼ぶのを忘れずに。
&bold(){void Draw(GameTime gameTime)}
描画メソッド。画面に絵を表示させる処理を書く。こいつも継承もとのメソッドを呼ぶべし。
----
***矩形を変形して描画
&bold(){[[Draw2DTransForm]]}
真っ白な64x64の画像「white.png」をリソースとして取り込み、それを引き伸ばして描画する。
簡易的なライフ表示とかに使えそう。
----
***画像のアニメーション
----
***XNA3.1に付属しているサンプル「Platformer」を読み解く。
+とりあえず「新しいプロジェクト>XNA GameStudio 3.1を選択してPlatformerスターターキット(3.1)」でプロジェクトを作成する。
+適当にデバッグして遊んでみる。Windows用以外にもXbox360用とZune用のプロジェクトがあるので注意。
+プロジェクトフォルダの「プロジェクトのルート\bin\x86\Debug\Content\Levels」以下にあるテキストファイルを弄るとステージの変更ができる。色々やってみるべし。
----
**XNA簡単なTips集
&bold(){リソースに画像を追加する}
プロジェクトフォルダ以下の「Content.RootDirectory」で指定した場所に画像を格納。
ソリューションエクスプローラーのContentを右クリック>追加>既存の追加
格納した画像を指定すると、画像のファイル名のみでリソースを指定できるようになる。
&bold(){タイトルバーの部分の表示を変更したい}
「Microsoft.Xna.Framework.Game.Window.Title」の部分に文字列を代入してやればいい。
専用のメソッドを作っておいて、デバッグ情報などを流すと便利。
&bold(){fpsの表示}
http://blogs.msdn.com/ito/archive/2008/12/27/fps-counter.aspx
----
http://creators.xna.com/en-US/tutorial/collision2drectangle
2Dの当たり判定に関するサンプルコード。シンプルで理解しやすい。
[[http://msdn.microsoft.com/ja-jp/library/bb197293%28lightweight%29.aspx]]
3Dチュートリアル
[[超初心者のXNA入門>http://sky.geocities.jp/kmaedam/xna/xna.html]]
主な教科書。XNAのバージョンは3.0。
[[ひにけにXNA>http://blogs.msdn.com/ito/default.aspx]]
XNAの最新の情報を&bold(){日本語で}更新してくれているBlog。
[[リンク集>http://www16.atwiki.jp/xna360/pages/10.html]]
リンク切れのが多い。内容も古め。
http://creators.xna.com/ja-JP/
http://msdn.microsoft.com/ja-jp/xna/default.aspx