/// <summary> /// (перемещает этот объект в выбранном направлении) /// </summary> /// <param name="speed">(скорость перемещения)</param> /// <param name="typeX">(<see cref="SideX"/> направление по оси X)</param> /// <param name="typeY">(<see cref="SideY"/> направление по оси X)</param> public static void MoveAside(this ObjectSingle objectToMove, float speed, SideX typeX = SideX.middle, SideY typeY = SideY.middle) { int kX = 0; int kY = 0; switch (typeX) { case SideX.left: kX = -1; break; case SideX.middle: kX = 0; break; case SideX.right: kX = 1; break; } switch (typeY) { case SideY.up: kY = -1; break; case SideY.middle: kY = 0; break; case SideY.down: kY = 1; break; } Move(objectToMove, speed, kX.GridToX(), kY.GridToY()); }
PointF CalcControlPoint(int Offset, SideX Side) { PointF Point = new PointF((int)Side, 0); if (Math.Abs(Offset) == 1) Point.X = .5f; return Point; /* PointF Point = null; if (Offset == 0) return Point; else if (Math.Abs(Offset) == 2) Point = new PointF(Side, 0); else Point = new PointF(.5f, 0); return Point; */ }
public void ResizeX(SideX s = SideX.Right) { apprSideX = s; switch (s) { case SideX.Left: area.AxisX.Maximum = area.AxisX.Minimum + widthX; break; case SideX.Center: double center = (area.AxisX.Minimum + area.AxisX.Maximum) / 2; area.AxisX.Minimum = center - widthX / 2; area.AxisX.Maximum = center + widthX / 2; break; case SideX.Right: area.AxisX.Minimum = area.AxisX.Maximum - widthX; break; } centerX = area.AxisX.Maximum / 2 + area.AxisX.Minimum / 2; }
int Offset(Point Base, SideX SideX, SideY SideY) { int OffsetX = (SideX == SideX.left) ? 1 : -1; return SquareOffset(Base, OffsetX, SideY); }