private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < pala.cantLetras; i++)
{ guiones[i] = new Label();
guiones[i].Text = "_";
guiones[i].Font = new Font("Berlin Sans FB Demi", 25);
guiones[i].Size = new Size(18, 37);
guiones[i].Name = "guion" + i;
guiones[i].ForeColor = Color.Black;
guiones[i].BackColor = Color.Transparent;
guiones[i].Location = new Point(x, 341);
this.Controls.Add(guiones[i]);
recguion[i] = guiones[i].Bounds;
recguion[i] = new Rectangle();
//recguion[i].Location = new Point(x, 341);
x = x + 50;
}
for (int i = 0; i < pala.cantLetras; i++)
{
labels[i] = new Label();
labels[i].Size = new Size(25, 55);
labels[i].Name = "label" + i;
labels[i].Text = pala.palabra[i].ToString();
labels[i].Font = new Font("Berlin Sans FB Demi", 20);
labels[i].ForeColor = Color.Black;
labels[i].BackColor = Color.Transparent;
labels[i].Location = new Point(y, 165);
this.Controls.Add(labels[i]);
posRandom[i] = y;
reclabel[i] = labels[i].Bounds;
reclabel[i] = new Rectangle();
// reclabel[i].Location = new Point(y, 165);
y = y + 40;
}
}
Ich muss wissen, wenn reclabel [] das recguion [] schneidet, das dieser Zahl entspricht. Bsp .: reclabel [1] Durchschneidet recguion [1], aber nur dieses, wenn es sich mit einem anderen schneidet, muss es sagen, dass es falsch ist. Die Rechtecke haben innen (oder das ist, was ich versuche) Labels [] und Guiones [] Dies ist, was ich versucht habe, aber es funktioniert nicht.Sich schneidende Rechtecke vom Array
private void intersecta()
{
int cont = 0;
for (int i = 0; i < pala.cantLetras; i++)
{
for (int j = 0; j < pala.cantLetras; j++)
{
if (i==j)
{
Rectangle intersect = Rectangle.Intersect(reclabel[i], recguion[j]);
if (intersect != Rectangle.Empty)
{
MessageBox.Show("Intersection!");
cont++;
}
}
if (cont != 0)
{
i = pala.cantLetras - 1;
j = pala.cantLetras - 1;
}
}
}
}
Vielen Dank!
Eine verschachtelte Schleife ist nicht erforderlich. Durchlaufen Sie einfach ein Array und prüfen Sie beide Rechtecke an diesem Index mit '.IntersectsWith'. –
Sie setzen 'recguion [i] = guiones [i] .Bounds;' und schreiben dann sofort mit 'recguion [i] = new Rectangle();', was nicht richtig erscheint. –