windows phone 7でXNAを使ったゲーム作成

プロジェクト作成

Visual Studio2010を立ち上げたらメニューのFile->New Projectで新規プロジェクトを作成する。
f:id:kambayashi:20100322141955j:image


プロジェクトの作成が終わったら、とりあえずそのままF5で実行する。
画面が青で塗りつぶされたエミュレータが表示されるが、これは毎フレーム青で塗りつぶす処理をしている。
f:id:kambayashi:20100322142237j:image

ソース解説

XNAはデフォルトで起動時などの各タイミングなどで呼ばれるメソッドが決まっていて、そこの中を書くだけで簡単なゲームが作れるようになっている。
解説しているサイトは数多あるので、とりあえず主要なメソッドだけ軽く紹介する。

Update()
1秒間に30回程度呼び出されるメソッドで、ゲーム処理の更新(キャラクターの移動など)の処理を実行するためのメソッド。
1秒間に実行される回数はコンストラクタ内で設定されているが、とりあえずモバイルゲームなら30回のままでOK。

Draw()
画面の更新メソッド。
前述のUpdate()などでキャラクターの移動処理などを行うが、それを画面に反映する処理はここで行う。
このメソッドもUpdate()と同数程度実行される。

LoadContent()
画像やサウンドなどゲーム内で使用する外部ファイルを読み込むためのメソッド。
データが多いときはタイトルやシーンごとに分けて読み込む必要があるかもしれないが、それほど大きいプログラムじゃなければここで読み込んでしまえばOK。

Initialize()
プログラムの初期化処理用メソッド。
ゲームの進行状態を管理するオブジェクトなど、最初の1回行えばいいような処理はここに書く。

画面を塗りつぶす色を変えてみる

とりあえず1番簡単な改変として画面を塗りつぶす色を変えてみる。
画面更新処理はDraw()で行われているので、ここのソースを見てみる。

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            // TODO: Add your drawing code here

            base.Draw(gameTime);
        }

Clear()というメソッドが呼ばれて、あなたの描画コードをここに追加してねと書かれて、最後に親クラスのDraw()が呼ばれている。
もう引数を見れば一目瞭然だと思うが、画面の塗りつぶしは1番上のClear()で行われているので、ここを変えてみる。
引数のCornFlowerBlueの部分を消してColor.の後ろに入力カーソルを持ってきて、Ctrlとスペースキーを同時に押すと
補完入力機能で他のクラス定数が表示されるので、その中から違う色を選ぶ。
とりあえず分かりやすくRedを選んでみる。
f:id:kambayashi:20100322145559j:image

まとめ

windows phoneは、iphoneやandroidと比べてXNAが使える点でゲーム開発が容易なので、
端末が普及するかどうかはさておき、とりあえず作ってみると言う点では使いやすい。
また発表時の内容にあるようにPCや360でも動くので、移植されるソフトも多いかも。


マイクロソフト、Windows Phone 7で3D XNAゲームをデモ
http://japanese.engadget.com/2010/03/09/windows-phone-7-3d-xna/