前田稔(Maeda Minoru)の超初心者のプログラム入門
this.WindowState = FormWindowState.Maximized; |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication1 { //☆Card Object Class class Card { public Bitmap bmp; public int W; //Sprite の幅 public int H; //Sprite の高さ public int N; //横の枚数 // Constructor public Card(string file, int w, int h) { try { bmp = new Bitmap(file); } catch { MessageBox.Show("イメージが取得できません", "Error"); return; } W = w; H = h; N = bmp.Width / w; } // 画像全体を描画 public void View(Graphics g, int x, int y) { if (bmp != null) g.DrawImage(bmp, x, y); } // Sprite を描画 public void View(Graphics g, int n, int x, int y) { Rectangle des = new Rectangle(x, y, W, H); Rectangle sou = new Rectangle((n % N) * W, (n / N) * H, W, H); if (bmp != null) g.DrawImage(bmp, des, sou, GraphicsUnit.Pixel); } } } |
Card App; int SP_NO = 0; public Form2() { InitializeComponent(); App = new Card(@"c:\data\test\bijin16.jpg", 60, 60); timer1.Start(); } |
int SP_NO = 0; private void timer1_Tick(object sender, EventArgs e) { SP_NO = (SP_NO + 1) % 16; Invalidate(); } |
private void MyHandler(object sender, PaintEventArgs e) { Graphics g = e.Graphics; if (App.bmp == null) Application.Exit(); App.View(g, SP_NO, 20, 100); } |
public partial class Form1 : Form { Form2 Anime1 = null; private void Button1_Click(object sender, EventArgs e) { if ((Anime1 == null) || Anime1.IsDisposed) { this.WindowState = FormWindowState.Minimized; Anime1 = new Form2(); Anime1.Show(); } } |
public Form3() { InitializeComponent(); App = new Card(@"c:\data\test\girl.gif", 128, 216); timer1.Start(); } |
private void timer1_Tick(object sender, EventArgs e) { SP_NO = (SP_NO + 1) % 7; Invalidate(); } |
Form3 Anime2 = null; private void Button2_Click(object sender, EventArgs e) { if ((Anime2 == null) || Anime2.IsDisposed) { this.WindowState = FormWindowState.Minimized; Anime2 = new Form3(); Anime2.Show(); } } |