Sprite を切り替える

Windows モードから幾つかのプログラムを抜粋して CLI で動かします。
マウスのクリックで Sprite を切り替える を CLI で動かしてみましょう。

CLI で動かす

  1. C:\Data\C#\BAT\win\ のフォルダーに Change.cs の名前で utf-8(BOM 有り)でタイプして格納して下さい。
    C:\DATA\Test に girl.gif を格納して下さい。
    /*★ Click で画像を切り替える    前田 稔 ★*/
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form
    {
        public  static Bitmap  bmp;
        int     SP_NO;
    
        public MyForm()
        {
            Name = "MyForm";
            Paint += new PaintEventHandler(MyHandler);
            MouseDown += new MouseEventHandler(OnMyMouseDown);
            SP_NO = 0;
        }
    
        private void MyHandler(object sender, PaintEventArgs e)
        {   Graphics g = e.Graphics;
            g.DrawImage(bmp,new Rectangle(80,10,128,216),
                new Rectangle(SP_NO*128,0,128,216),GraphicsUnit.Pixel);
        }
    
        private void OnMyMouseDown(object sender, MouseEventArgs e)
        {   SP_NO= (SP_NO+1)%7;
            Invalidate();
        }
    }
    
    class anime
    {
        public static void Main()
        {   // Load Image
            try
            {   MyForm.bmp= new Bitmap("c:\\data\\test\\girl.gif");  }
            catch
            {   MessageBox.Show("イメージが取得できません", "Error");
                return;
            }
            MyForm mf = new MyForm();
            Application.Run(mf);
        }
    }
    
  2. スタートメニューから[すべてのプログラム][Visual C++ 2005 Express Edition][Visual Studio Tools] [Visual Studio 2005 コマンド プロンプト] から起動します。
    C:\Data\C#\BAT\win のフォルダーに移動して、直接 csc コマンドを叩きます。
    Change.exe を実行すると、少女の画像が描画されます。
    >CD C:\Data\C#\BAT\win
    >CSC Change.cs
    >Change.exe          
    
  3. 大きな画像から Sprite を切り出して、マウスのクリックで Sprite を切り替えます。
    Main() で事前に MyForm.bmp に画像をロードしておきます。
    Main は static なので、MyForm.bmp の領域も static で宣言して下さい。
        public  static Bitmap  bmp;
    
    OnMyMouseDown() で SP_NO を切り替えて MyHandler() で描画します。
  4. MyHandler() では DrawImage() で画像を切り分けます。
            g.DrawImage(bmp,new Rectangle(80,10,128,216),
                new Rectangle(SP_NO*128,0,128,216),GraphicsUnit.Pixel);
    
  5. DrawImage のパラメータの説明です。
    パラメータ 説明
    bmp 描画する画像ファイル名
    new Rectangle(80,10,128,216) 受取側(Form)の左上座標と幅と高さ
    new Rectangle(SP_NO*128,0,128,216) 送り側(Image)の左上座標と幅と高さ
    GraphicsUnit.Pixel パラメータの数値はピクセル単位で指定

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