スプライトを描画したい

最近XNA 2.0を使い始めたのですが、1.0の時と細かく違っているようですので以前のサンプルを移植してみました。
■表示するグラフィックデータの用意。

今回はPNG形式のグラフィックを使用します。(グラフィックデータとしては、*.gif *.jpgなどいろいなフォーマットでも使用が可能です)

■表示するグラフィックデータをプロジェクトに登録。

Contentにマウスカーソルを合わせ右クリックをするとメニューが現れますので「追加」の「存在の項目」を選択ます。

ここでファイル選択画面になります。用意したグラフィックファイルを選択してください。(ここではmimi.pngが追加します。)

ファイルが登録されたのがわかると思います。

■グラフィックデータとして設定する。

追加された"mimi.png"をダブルクリックすると「プロパティー」ウインドウが開きます。
プロパティーで「Asset Name」 の設定が"mimi"となっているか確認してください。


これでグラフィックの登録は完了しました。

■プログラム

プログラムはシンプルで以下のようなプログラムになります。

namespace WindowsGame2_00
{
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        private SpriteBatch sprite;
        private Texture2D texture;

        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }

        protected override void LoadContent()
        {
            sprite = new SpriteBatch(graphics.GraphicsDevice);
            texture = Content.Load<Texture2D>("mimi");
        }

        protected override void Draw(GameTime gameTime)
        {
            graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
            sprite.Begin();
            Vector2 pos = new Vector2(0, 0);
            sprite.Draw(texture, pos, Color.White);
            sprite.End();
            base.Draw(gameTime);
        }
    }
}

■ソース説明

表示を制御するスプライト「sprite」、テクスチャを制御する「texture」を定義します。

  private SpriteBatch sprite;
  private Texture2D texture;

スプライトの初期化とテクスチャの読み込みをします。テクスチャの読み込みに "mimi" となっているのは、さきほどグラフィックデータを登録した時に設定した「Asset Name」を記入してください。

  sprite= new SpriteBatch(graphics.GraphicsDevice);
  texture = content.Load<Texture2D>("mimi");

あとは、Draw関数内で描画を指定すれば完成です。

  graphics.GraphicsDevice.Clear(Color.CornflowerBlue); // 画面のクリアをします。
                                                       // 背景色はCornflowerBlueです。
  sprite.Begin();                                      // スプライトの定義開始
  Vector2 pos = new Vector2(0, 0);                     // 表示する位置を設定します。
  sprite.Draw(texture, pos, Color.White);              // 表示設定をします。
  sprite.End();                                        // スプライトの定義終了

実行し以下のような画面が現れれば成功です。