diff --git a/AirBomber/AirBomber/DrawingAirBomber.cs b/AirBomber/AirBomber/DrawingAirBomber.cs
index efa3cca..6912c3d 100644
--- a/AirBomber/AirBomber/DrawingAirBomber.cs
+++ b/AirBomber/AirBomber/DrawingAirBomber.cs
@@ -222,5 +222,14 @@ namespace AirBomber
_startPosY = _pictureHeight.Value - _airBomberHeight;
}
}
+
+ ///
+ /// Получение текущей позиции объекта
+ ///
+ ///
+ public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
+ {
+ return (_startPosX, _startPosY, _startPosX + _airBomberWidth, _startPosY + _airBomberHeight);
+ }
}
}
diff --git a/AirBomber/AirBomber/DrawingObject.cs b/AirBomber/AirBomber/DrawingObject.cs
new file mode 100644
index 0000000..e086d63
--- /dev/null
+++ b/AirBomber/AirBomber/DrawingObject.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AirBomber
+{
+ internal class DrawingObject : IDrawingObject
+ {
+ private DrawingAirBomber _airBomber = null;
+
+ public DrawingObject(DrawingAirBomber airBomber)
+ {
+ _airBomber = airBomber;
+ }
+
+ public float Step => _airBomber?.AirBomber?.Step ?? 0;
+
+ public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
+ {
+ return _airBomber?.GetCurrentPosition() ?? default;
+ }
+
+ public void MoveObject(Direction direction)
+ {
+ _airBomber?.MoveTransport(direction);
+ }
+
+ public void SetObject(int x, int y, int width, int height)
+ {
+ _airBomber.SetPosition(x, y, width, height);
+ }
+
+ void IDrawingObject.DrawingObject(Graphics g)
+ {
+ if (_airBomber == null) return;
+ if (_airBomber is DrawingHeavyAirBomber heavyAirBomber)
+ {
+ heavyAirBomber.DrawTransport(g);
+ }
+ else
+ {
+ _airBomber.DrawTransport(g);
+ }
+ }
+ }
+}
diff --git a/AirBomber/AirBomber/IDrawingObject.cs b/AirBomber/AirBomber/IDrawingObject.cs
new file mode 100644
index 0000000..804aaf2
--- /dev/null
+++ b/AirBomber/AirBomber/IDrawingObject.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AirBomber
+{
+ ///
+ /// Интерфейс для работы с объектом, прорисовываемым на форме
+ ///
+ internal interface IDrawingObject
+ {
+ ///
+ /// Шаг перемещения объекта
+ ///
+ public float Step { get; }
+ ///
+ /// Установка позиции объекта
+ ///
+ /// Координата X
+ /// Координата Y
+ /// Ширина полотна
+ /// Высота полотна
+ void SetObject(int x, int y, int width, int height);
+ ///
+ /// Изменение направления пермещения объекта
+ ///
+ /// Направление
+ ///
+ void MoveObject(Direction direction);
+ ///
+ /// Отрисовка объекта
+ ///
+ ///
+ void DrawingObject(Graphics g);
+ ///
+ /// Получение текущей позиции объекта
+ ///
+ ///
+ (float Left, float Right, float Top, float Bottom) GetCurrentPosition();
+ }
+}