|
分類:[C#]
画像を(23,12)の位置から右ー下ー左ー上とぐるぐる回り続けるプログラムを作ってみましたが、 timerコントロールを4つも使うなど、自分でもえらく無駄の多い、冗長なプログラムのように思います。
しかし、こうしなけらばどうにもこの動きを作り出すことができませんでした。 どうか効率的なプログラムの組み方をご指導ください。
namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) { pictureBox1.Image = imageList1.Images[0];
}
private void timer1_Tick(object sender, EventArgs e) { if (pictureBox1.Left > 10) { pictureBox1.Image = imageList1.Images[0]; pictureBox1.Left += 10; if (pictureBox1.Left > 300) { timer1.Enabled = false; timer2.Enabled = true;
} } }
private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true;
}
private void button2_Click(object sender, EventArgs e) { timer1.Enabled = false; timer2.Enabled = false; timer3.Enabled = false; timer4.Enabled = false;
pictureBox1.Left = 23; pictureBox1.Top = 12;
}
private void timer2_Tick(object sender, EventArgs e) {
if (pictureBox1.Left > 300) { pictureBox1.Image = imageList1.Images[0]; pictureBox1.Top += 10; if (pictureBox1.Top > 300) { timer2.Enabled = false; timer3.Enabled = true;
} } }
private void timer3_Tick(object sender, EventArgs e) { if (pictureBox1.Top > 300) { timer2.Enabled = false; pictureBox1.Image = imageList1.Images[0]; pictureBox1.Left -= 10; if (pictureBox1.Left < 20) { timer3.Enabled = false; timer4.Enabled = true;
} } }
private void timer4_Tick(object sender, EventArgs e) { if (pictureBox1.Left < 20) { pictureBox1.Image = imageList1.Images[0]; pictureBox1.Top -= 10; if (pictureBox1.Top < 12) { pictureBox1.Image = imageList1.Images[0]; pictureBox1.Left += 10; timer4.Enabled = false; timer1.Enabled = true;
} } } } }
|