Örnek olması için bir gif paylaşayım. Yukarıdakini yazdığımda oyundaydım. Dolayısıyla biraz gecikmeli olarak oyun bittiğinde bu gifi hazırlayabildim.
[CODE lang="csharp" title="Açıklamalarıyla birlikte"]private void button1_Click(object sender, EventArgs e)
{
timer2.Start(); //panel1'i içeri çekecek timer'ı bununla çalıştırıyoruz.
}
private void timer1_Tick(object sender, EventArgs e)
{
a = p2 * 3; //animasyon hızını etkiliyor. çarpan ne kadar büyük hareket o kadar hızlı.
panel2.Visible = true;
p2++;
panel2.Location = new Point(a, 12);
if (p2 == 4) //konumuna ulaştığı zaman durdurması için. şuanki konum 12x 12y px.biz sadece x i değiştiriyoruz.
{
timer1.Stop(); //optimizasyon açısından timer'ın bir yerden sonra durması lazım. konuma ulaşınca durduruyoruz.
}
}
private void timer2_Tick(object sender, EventArgs e)
{
a = p1 * 3; //animasyon hızını etkiliyor. çarpan ne kadar büyük hareket o kadar hızlı.
p1--;
if (a > 12) //başlangıçta pozisyonu 3 e çarptığı için buton önce uzağa sonra içeri gitmeye başlıyor. bunun önüne geçmek için bu şekilde sınırladım
{
panel1.Location = new Point(12, 12);
}
else
{
panel1.Location = new Point(a, 12);
}
if (p1 == -23)
{
panel1.Visible = false;
timer1.Start(); //bu panel2yi dışarı çeken timer'ı başlatıyor.
timer2.Stop(); //optimizasyon açısından timer'ın bir yerden sonra durması lazım. konuma ulaşınca durduruyoruz.
}
}[/CODE]