XNA Framework
Top / XNA Framework
概要
XNA Framework は、.NET Framework を基礎にゲームに必要となる各種 API を提供しています。Windows PC 上で動作する XNA Framework ゲームは、Windows 上にインストールされているフルセットの .NET Framework の機能にアクセスできます。現実的ではありませんが、Windows フォームや WPF のような他の GUI フレームワークと相互運用することもできます。
一方、Xbox 360 や Zune? では、最小限の機能だけを提供する .NET Compact Framework をベースとするため、Windows PC のようなフルセットの機能は使えません。特に Xbox 360 はセキュリティのために制限が強く、ネットワークやシステムにアクセスする機能を使うことはできません。
開発言語
XNA Framework ゲーム開発に正式対応するプログラミング言語は C♯ 言語のみです。コンパイルによって生成されるプログラムは共通言語ランタイム(CLR)で実行するためのマネージコード(中間言語)になります。
ゲームループ?
XNA Franework では、Windowsフォーム?で開発するような Windows アプリケーションとは異なりイベント駆動?ではありません。一般的な GUI 用のフレームワークは描画が必要になると Paint イベントが発生し、マウスボタンが押されると MouseDown? イベントや Click イベントが発生するという仕組みですが、XNA Framework では基本的にプログラム主導で制御することになります。
Game クラスの Run() メソッドを実行してゲームが起動されると、XNA Framework はゲームループ?と呼ばれる反復処理に入ります。これは、Windows アプリケーションにおけるメッセージループのようなものですが、処理の内容は大まかに
- ゲームデータの更新 (Update)
- ゲーム画面の描画 (Draw)
を行う 2 つのメソッドを永遠と繰り返すだけです。イベントを待機するのではなく、短い間隔でメソッドを実行してゲームの状態を更新し続けるのです。
まず最初に、ゲームのデータを更新するために Update() メソッドが呼び出され、その後に更新されたデータに基づいてゲーム画面を構築するために Draw() メソッドが呼び出されます。