画像をリソースとして組み込む

背景に透明色を設定した画像をリソースとしてプロジェクトに組み込みます。

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

プログラムの説明

  1. ゲームでは、素材を直接ファイルから入力するのでは無く、リソースとしてプロジェクトに組み込む方法が使われます。
    透明色を設定した BMP 画像をリソースとして取り込む方法を説明します。
    リソースとして画像を取り込むと、紫(R=255, G=0, B=255)が透明色として設定されます。
    XNA Game Studio のテンプレートを使って、プロジェクトを作成して下さい。
    次に画像ファイルをプロジェクトの Content のフォルダーに格納して下さい。
  2. ソリューションエクスプローラで Content を右クリックして [追加][既存の項目] をクリックします。
    プロジェクトの Content のフォルダーに格納した画像ファイルを選択するとソリューションエクスプローラに表示されます。
    ソリューションエクスプローラの画像を選択してプロパティを表示します。
    Asset Name に表示されている kishimz が画像をロードする時の ID です。
    普通 Asset Name は画像ファイルの名前から拡張子を取り除いた名前に設定されています。

  3. LoadContent() メソッドに texture を生成するコードを追加します。
    直接ファイルから入力するときは、次のように書いていました。
            protected override void LoadContent()
            {
                ・・・
                texture = Texture2D.FromFile(graphics.GraphicsDevice, "c:\\data\\test\\kishi.png");
            }
        
    リソースとして組み込んだ画像を使うときは、次のように書きます。
    "kishimz" は Asset Name に表示されていた ID です。
            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 = Content.Load<Texture2D>("kishimz"); 
            }
        
  4. Draw() メソッドで描画するコードは変わりません。
    コンテンツを格納するルートのフォルダーは、テンプレートで作成された下記のメソッドで設定されています。
    "Content" の C は大文字が使われているので注意して下さい。
            public Game1()
            {
                graphics = new GraphicsDeviceManager(this);
                Content.RootDirectory = "Content";
            }
        

【演習】

  1. 透明色を設定した bmp 画像を作成して描画してみて下さい。
    リソースとして画像を取り込むと、紫(R=255, G=0, B=255)が透明色として設定されます。

【NOTE】

リソースとして取り込んだコンテンツは、効率よく転送できる形式に変換されて、プロジェクトのフォルダーに格納されます。
例えば、次のようになっています。
C:\...\ShootGame\bin\x86\Debug\ 実行形式のプログラムが格納されています
C:\...\ShootGame\bin\x86\Debug\Content\ 取り込んだリソースが格納されています

実行形式のプログラム(*.exe)をダブルクリックして、ゲームを起動することも出来ます。

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

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