/// <summary> /// テトリミノを回転させた時の処理 /// </summary> public void CurrentTetriminoMoveRotate() { Point position = _currentTetrimino.GetCurrentPosition(); Point[] s = new Point[4]; Point[] Shape = _currentTetrimino.GetCurrentShape(); bool move = true; Shape.CopyTo(s, 0); CurrentTetriminoErase(); for (int i = 0; i < s.Length; i++) { double x = s[i].X; s[i].X = s[i].Y; s[i].Y = x; if (((int)((s[i].Y + position.Y) + 2)) >= Rows) { move = false; } else if (((int)((s[i].X + position.X) + (Cols / 2) - 1)) < 0) { } else if (((int)((s[i].X + position.X) + (Cols / 2) - 1)) >= Rows) { } else if (BlockControls[(int)(s[i].X + position.X) + ((Cols / 2) - 1), (int)(s[i].Y + position.Y + 2)].Background != NoBrush) { move = false; } } if (move) { _currentTetrimino.MovRotate(); CurrentTetriminoDraw(); } else { CurrentTetriminoDraw(); } }