Arkadaslar merhaba;
C# da yeniyim ve bir yerde takıldım. Basit bir DxBall benzeri bir oyun kodları asagidaki. Uygulamada bir cok buton olusmakta ve top her bir butona carpıp gecmektedir. Buraya kadar sıkıntı yok fakat ben butonlara carpma durumunun kontrol edilmesini ve carpma anında da butonun silinmesini istemekteyim. "this.Controls.Remove" ile silme islemini yapmaya calistim ama yapamadim. Konu ile ilgili yardimci olabilen olursa sevinirim.
private void DxBall_Load(object sender, EventArgs e)
{
topolustur();
}
List kayalar = new List();
private void topolustur()
{
RadioButton Rtop = new RadioButton();
Random rnd = new Random();
Rtop.Enabled = false;
Rtop.Left = rnd.Next(1, 550);
Rtop.Top = rnd.Next(1, 150);
int[] yon = new int[2];
yon[0] = 2;
yon[1] = 2;
Rtop.Tag = yon;
this.Controls.Add(Rtop);
}
int sayac = 0;
private void timer1_Tick(object sender, EventArgs e)
{
sayac++;
if (sayac % 200 == 0)
butonolustur();
foreach (Control item in this.Controls)
{
if (item is RadioButton)
{
int[] yon = (int[])item.Tag;
item.Left += yon[0];
item.Top += yon[1];
if (item.Left < 1 || item.Left > 560)
yon[0] *= -1;
if (item.Top < 1 || item.Top > 390)
yon[1] *= -1;
item.Tag = yon;
}
}
}
private void DxBall_MouseClick(object sender, MouseEventArgs e)
{
topolustur();
}
private void butonolustur()
{
Random rnd = new Random();
Button buton = new Button();
buton.Width = 50;
buton.Height = 50;
buton.Left = rnd.Next(1, this.ClientSize.Width - 100);
buton.Top = rnd.Next(1, this.ClientSize.Height - 100);
kayalar.Add(buton);
this.Controls.Add(buton);
}
}
}