さすがに本格的にゲーム開発に取り掛かるのは無理なので、XNA Game Studio 3.1が一体どんなものなのかな?という程度の小さな2Dのテスト・プログラムを作ってみました。
自分で撮影した、キヤノンのコンパクト一眼レフカメラ「EOS KISS X2」の写真をスプライトキャラクターにして、キーボードのキーで上下左右に自由に動かす・・・というだけのプログラムです。
だけって言っても、スプライトキャラクターの定義とか色々あるし、ゼロからやったらえらい大変ですよね。
しかも、Windowsで動いても、Xbox360で動かすすべは全くないし、やっぱりXNA Game Studio 3.1の威力を見たいところです。
というか・・・。C#言語さえ分かれば組めるってもんじゃない。作法が全然分からない。
しかし、あれこれ試行錯誤で調べてみると、一時間くらいで、初歩の初歩の基本が見えて来ました。
(1)基本は、Microsoft.Xna.Framework.Gameクラスを継承した自作クラス。仮にGame1クラス。
(2)Game1クラスの、LoadContent()メソッドをオーバーライドしてスプライトキャラの定義をする。
(3)Game1クラスの、Draw()メソッドをオーバーライドして、スプライトを描画する。
(4)Game1クラスの、Update()メソッドがメイン。ここをオーバーライドしてメイン処理とする。
おおー。当たり前も当たり前で恐縮ですが、ゲーム機用でも.NET Frameworkプログラミングそのものだなぁ・・・。いいなぁ。
■スプライトキャラクターは、単に画像のリソース登録で定義OK■
X68000とかの時代は、スプライトキャラクターの定義だけで一日とか潰れてた気がしますが、さすがXNAは、画像ファイルをリソース登録するだけ。
大きな画像を登録するだけで、昔のゲーム機が心血を注いでアピールした「超デカキャラ」の出来上がり。アニメとかしないけど、時代ですね・・・。
■スプライトキャラクターを読み込んで初期位置を設定■
しかるべくクラスを定義していれば、リソース登録したスプライトキャラクターは、
spriteBatch = new SpriteBatch(GraphicsDevice);これで初期表示されてしまうんです。
obj_EOS_KISSX2 = Content.Load<Texture2D>("pic1"); //.Loadの後の<>は半角で
obj_location.X = 100; //X座標の初期表示位置
obj_location.Y = 200; //Y座標の初期表示位置
「えっ、こういう書き方でいいの?」というくらい
ジェネリック型とか、.NET Frameworkの威力がバリバリに発揮されてるって事か・・・。
GraphicsDevice.Clear(Color.CornflowerBlue);
//いよいよスプライト表示開始!!
spriteBatch.Begin(SpriteBlendMode.None);
spriteBatch.Draw(obj_EOS_KISSX2,obj_location, Color.White);
spriteBatch.End();
base.Draw(gameTime);
画面にEOS KISS X2が表示さ
本当なら背景は透明とかに
■スプライトキャラクターを動かす■
今回の制御は、メインのメソッドとも言
スプライトキャラクターは、キーボードの上下左右のカーソルキーで動かします。
Xbox360のゲームパッド関係のクラスは、市販のUSBゲームパッドには通用しないみたいです。
悩むのも主旨が違うので、
詳しくはコードのスクリーンショットをご
.NET Frameworkプログラミングらしく、直感的な書き方が可能で嬉しい。
■おおおおー。EOS KISS X2がスルスルと動くー!!!■
これだけのプログラミングで、EOS
言ったら、単に動かしているだけなんですけれど、さっき始めたばかりでもう作れたって事だけで、なんかちょっとグッと来ますね。
XNA Game Studio 3.1大したものだなぁ・・・。
ゲーム機って、以前は日本が独占していたのですが、海外ではPS3の人気は高いものの、マイクロソフトのXbox360が日本のゲーム機の牙城を打ち崩して普及しているようです。
開発者の支持も極めて高いという話を聞いていましたが、確かに、こういう、開発者側を取り込もうと必死で努力する姿を見せられると、なるほどって感じですよね。
それまで完全にブラックボックスだったゲーム機のソフト開発を、全てではないでしょうけれども、こうしてオープンにしてしまうマイクロソフト。
それに見合ったソフトを作り出して来るマイクロソフト。
もはや感心していいのか、感動していいのか分からないくらい。
でも、日本としては、やっぱり怖いし、どうしようって感じはしますよね。