Hallo,
hab das ganze jetzt mal für den ' ---- '-Stein angepasst.
Nur
ein Problem besteht jetzt noch, wenn ich öfters hintereinander nach rechts drehe Bewegt der Spielstein sich nach rechts.
Bei der Linksdrehung bleibt alles okay.
Hier mal die jetzige Methode:
Code:
public override void rotate(RotateDirection rotDir)
{
Point AB;
int Dimension = 5;
Mittelpunkt = (Fields[2].X > Fields[1].X || Fields[2].Y > Fields[1].Y) ? Fields[2] : Fields[1];
bool[] fieldIsRefreshed = {false,false,false,false};
for (int i = Mittelpunkt.X - 2; i < Mittelpunkt.X - 2 + Dimension - 1; i++)
{
for (int j = Mittelpunkt.Y - 2; j < Mittelpunkt.Y - 2 + Dimension - 1; j++)
{
for (int k = 0; k < Fields.Length ; k++)
{
if (!fieldIsRefreshed[k])
{
if (i == Fields[k].X && j == Fields[k].Y)
{
AB = new Point(i - Mittelpunkt.X, j - Mittelpunkt.Y);
AB = (rotDir == RotateDirection.Right) ? AB = new Point(-AB.Y, AB.X) : new Point(AB.Y, -AB.X);
Fields[k] = new Point(AB.X + Mittelpunkt.X, AB.Y + Mittelpunkt.Y);
fieldIsRefreshed[k] = true;
}
}
}
}
}
}
Jetzt nur noch verallgemeinern für die anderen Spielsteine und dann sollte es klappen