画像ファイルを描画する

XNA の SpriteBatch で画像ファイルを描画します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. XNA Game Studio のテンプレートを使って、プロジェクト(WindowsGame1)を作成して下さい。
    WindowsGame1 のプロジェクトが既に存在するときは WindowsGame2 になってしまいます。
    WindowsGame1 が存在するときは、削除するか名前を変更してから作業して下さい。
    詳細は 自動的にプロジェクトを作成する(Ver3.0)
    または 自動的にプロジェクトを作成する(Ver2.0) を参照して下さい。

  2. Game1.cs を編集して、画像ファイルを描画するプログラムを作成します。
    class Game1 の最初の方で、Texture2D を宣言して下さい。
    namespace WindowsGame1
    {
        //☆ Game1 Object Class
        public class Game1 : Microsoft.Xna.Framework.Game
        {
            GraphicsDeviceManager graphics;
            SpriteBatch spriteBatch;
    
            Texture2D   texture;     // 描画に使用するテクスチャ
    
  3. LoadContent() メソッドに texture 入力するコードを追加します。
    "c:\\data\\test\\kishi.png" がこのプログラムで表示する画像ファイルの名前です。
    読者諸氏は、適当なファイルを調達してきてフルパス(c:\\...)で記述して下さい。
    画像ファイルの形式は「bmp, png, jpg, dds」などが使えます。
            protected override void LoadContent()
            {
                // Create a new SpriteBatch, which can be used to draw textures.
                spriteBatch = new SpriteBatch(GraphicsDevice);
    
                // TODO: use this.Content to load your game content here
                texture = Texture2D.FromFile(graphics.GraphicsDevice, "c:\\data\\test\\kishi.png");
            }
        
  4. Draw() メソッドに画像を描画するコードを追加します。
    Vector2(0.0f, 200.0f) などが描画する座標です。
    Color.White などがブレンドする色です。
    ブレンドする色を変えて、縦に三枚ならべて描画してみました。
            protected override void Draw(GameTime gameTime)
            {
                graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
    
                // TODO: Add your drawing code here
                spriteBatch.Begin(SpriteBlendMode.None);
                spriteBatch.Draw(texture, new Vector2(0.0f, 0.0f), Color.White);
                spriteBatch.Draw(texture, new Vector2(0.0f, 200.0f), Color.Green);
                spriteBatch.Draw(texture, new Vector2(0.0f, 400.0f), new Color(0x80, 0xFF, 0x80));
                spriteBatch.End();
    
                base.Draw(gameTime);
            }
        
  5. メニューの [デバッグ] から [デバッグ開始] または [デバッグなしで開始] を選択すればコンパイルされ、エラーが無ければ実行されます。

【演習】

  1. 座標を変えて描画してみて下さい。
    spriteBatch.Draw(texture, new Vector2(300.0f, 200.0f), Color.White);
  2. Color を変えて描画してみて下さい。
    spriteBatch.Draw(texture, new Vector2(400.0f, 0.0f), Color.Yellow);
    spriteBatch.Draw(texture, new Vector2(400.0f, 200.0f), Color.YellowGreen);
  3. 二枚のテクスチャを定義して、二種類の画像を描画して下さい。
    1. Texture2D の宣言です。
              Texture2D   texture1;    // 描画に使用するテクスチャ 1
              Texture2D   texture2;    // 描画に使用するテクスチャ 2
              
    2. 二枚のテクスチャに画像をロードして下さい。
              texture1 = Texture2D.FromFile(graphics.GraphicsDevice, "c:\\画像ファイルの名前1");
              texture2 = Texture2D.FromFile(graphics.GraphicsDevice, "c:\\画像ファイルの名前2");
              
    3. 二種類の画像を描画するコードです。
              protected override void Draw(GameTime gameTime)
              {
                  graphics.GraphicsDevice.Clear(Color.CornflowerBlue);
      
                  // TODO: Add your drawing code here
                  spriteBatch.Begin(SpriteBlendMode.None);
                  spriteBatch.Draw(texture1, new Vector2(0.0f, 0.0f), Color.White);
                  spriteBatch.Draw(texture2, new Vector2(0.0f, 300.0f), Color.White);
                  spriteBatch.End();
      
                  base.Draw(gameTime);
              }
              

超初心者の方のために Game1.cs のサンプルコードを TEXT 形式で提供します。 (^_^;)
全ソースコード

前田稔(Maeda Minoru)の超初心者のプログラム入門

超初心者のプログラム入門(XNA(C#) game program)