最終更新:2009-09-26 (土) 07:09:00 (5327d)  

XNA Framework
Top / XNA Framework

概要

XNA Framework は、.NET Framework を基礎にゲームに必要となる各種 API を提供しています。Windows PC 上で動作する XNA Framework ゲームは、Windows 上にインストールされているフルセットの .NET Framework の機能にアクセスできます。現実的ではありませんが、Windows フォームや WPF のような他の GUI フレームワークと相互運用することもできます。

一方、Xbox 360Zune? では、最小限の機能だけを提供する .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() メソッドが呼び出されます。