マウスで画像を操作する

XNA でマウスの左ボタンをクリックすると画像がついてきます。

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

プログラムの説明

  1. XNA でマウスの左ボタンをクリックすると画像がついてきます。
    マウスの右ボタンのクリックで解除します。
    このプログラムでは、透明色を設定した騎士の画像を使っています。
    操作のテストをするだけなら、どんな画像でも構わないので、適当なものを調達してきて下さい。
  2. Game1.cs を編集してプログラムを作成します。
    class Game1 の最初に、次の領域を宣言して下さい。
    texture は、騎士の画像です。
    pos は、texture を描画する座標で、マウスで操作します。
    flag は、マウスで画像を操作するフラグです。
            Texture2D   texture;     // 描画に使用するテクスチャ
            Vector2     pos;         // 画像の座標
            bool        flag;        // 制御フラグ
        
  3. Initialize() メソッドで画像の初期座標を設定して、フラグをリセットします。
                base.Window.Title = "XNA Game Studio";
                pos = new Vector2(400, 300);    //画像の座標を設定
                flag = false;
        
  4. LoadContent() メソッドに Texture2D に画像をロードするコードを追加します。
    "c:\\data\\test\\kishi.png" がテストで使った画像です。
                // TODO: use this.Content to load your game content here
                texture = Texture2D.FromFile(graphics.GraphicsDevice, "c:\\data\\test\\kishi.png");
        
  5. Update() メソッドで、マウスのクリックを検出して、マウスに合わせて画像を動かします。
    左ボタンがクリックされると flag をセットします。
    右ボタンがクリックされると flag をリセットします。
    flag がセットされているとき、マウスに合わせて画像を動かします。
                //マウスのボタン状態が変化した時
                if (Mouse.GetState().LeftButton == ButtonState.Pressed)     flag = true;
                if (Mouse.GetState().RightButton == ButtonState.Pressed)    flag = false;
                if (flag)
                {
                    pos.X = Mouse.GetState().X;
                    pos.Y = Mouse.GetState().Y;
                }
        
  6. Draw() メソッドに pos の座標に画像を描画するコードを追加します。
                // TODO: Add your drawing code here
                spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
                spriteBatch.Draw(texture, pos, Color.White);
                spriteBatch.End();
        
  7. メニューからコンパイルして実行して下さい。
    マウスの左ボタンをクリックして、画像を動かしてみてください。

超初心者の方のために全ソースコードを掲載します。 (^_^;)
全ソースコード

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

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