diff --git a/AirplaneWithRadar/AirplaneWithRadar/DrawingAirplane.cs b/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplane.cs
similarity index 88%
rename from AirplaneWithRadar/AirplaneWithRadar/DrawingAirplane.cs
rename to AirplaneWithRadar/AirplaneWithRadar/DrawningAirplane.cs
index 031f4c0..fa164eb 100644
--- a/AirplaneWithRadar/AirplaneWithRadar/DrawingAirplane.cs
+++ b/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplane.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace AirplaneWithRadar
{
- internal class DrawingAirplane
+ internal class DrawningAirplane
{
public EntityAirplane Airplane { get; protected set; }
protected float _startPosX;
@@ -15,11 +15,11 @@ namespace AirplaneWithRadar
private int? _pictureHeight = null;
private readonly int _airplaneWidth = 50;
private readonly int _airplaneHeight = 27;
- public DrawingAirplane(int speed, float weight, Color bodyColor)
+ public DrawningAirplane(int speed, float weight, Color bodyColor)
{
Airplane = new EntityAirplane(speed, weight, bodyColor);
}
- protected DrawingAirplane(int speed, float weight, Color bodyColor, int airplaneWidth, int airplaneHeight) :
+ protected DrawningAirplane(int speed, float weight, Color bodyColor, int airplaneWidth, int airplaneHeight) :
this(speed, weight, bodyColor)
{
_airplaneWidth = airplaneWidth;
@@ -126,5 +126,13 @@ namespace AirplaneWithRadar
_startPosY = _pictureHeight.Value - _airplaneHeight;
}
}
+ ///
+ /// Получение текущей позиции объекта
+ ///
+ ///
+ public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
+ {
+ return (_startPosX, _startPosY, _startPosX + _airplaneWidth, _startPosY + _airplaneHeight);
+ }
}
}
diff --git a/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplaneWithRadar.cs b/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplaneWithRadar.cs
index ef67c7b..74b1dc3 100644
--- a/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplaneWithRadar.cs
+++ b/AirplaneWithRadar/AirplaneWithRadar/DrawningAirplaneWithRadar.cs
@@ -6,10 +6,10 @@ using System.Threading.Tasks;
namespace AirplaneWithRadar
{
- internal class DrawningAirplaneWithRadar : DrawingAirplane
+ internal class DrawningAirplaneWithRadar : DrawningAirplane
{
public DrawningAirplaneWithRadar(int speed, float weight, Color bodyColor, Color dopColor, bool radar, bool ladder, bool window) :
- base(speed, weight, bodyColor, 135, 60)
+ base(speed, weight, bodyColor, 50, 27)
{
Airplane = new EntityAirplaneWithRadar(speed, weight, bodyColor, dopColor, radar, ladder, window);
}
diff --git a/AirplaneWithRadar/AirplaneWithRadar/DrawningObjectAirplane.cs b/AirplaneWithRadar/AirplaneWithRadar/DrawningObjectAirplane.cs
new file mode 100644
index 0000000..4897fad
--- /dev/null
+++ b/AirplaneWithRadar/AirplaneWithRadar/DrawningObjectAirplane.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AirplaneWithRadar
+{
+ internal class DrawningObjectAirplane : IDrawningObject
+ {
+ private DrawningAirplane _airplane = null;
+
+ public DrawningObjectAirplane(DrawningAirplane airplane)
+ {
+ _airplane = airplane;
+ }
+
+ public float Step => _airplane?.Airplane?.Step ?? 0;
+
+ public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
+ {
+ return _airplane?.GetCurrentPosition() ?? default;
+ }
+
+ public void MoveObject(Direction direction)
+ {
+ _airplane?.MoveTransport(direction);
+ }
+
+ public void SetObject(int x, int y, int width, int height)
+ {
+ _airplane.SetPosition(x, y, width, height);
+ }
+
+ void IDrawningObject.DrawningObject(Graphics g)
+ {
+ _airplane.DrawTransport(g);
+ }
+ }
+}
diff --git a/AirplaneWithRadar/AirplaneWithRadar/FormAirplane.Designer.cs b/AirplaneWithRadar/AirplaneWithRadar/FormAirplane.Designer.cs
index d165b40..c6f0ae9 100644
--- a/AirplaneWithRadar/AirplaneWithRadar/FormAirplane.Designer.cs
+++ b/AirplaneWithRadar/AirplaneWithRadar/FormAirplane.Designer.cs
@@ -88,7 +88,7 @@
// buttonCreate
//
this.buttonCreate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.buttonCreate.Location = new System.Drawing.Point(11, 392);
+ this.buttonCreate.Location = new System.Drawing.Point(11, 391);
this.buttonCreate.Name = "buttonCreate";
this.buttonCreate.Size = new System.Drawing.Size(94, 29);
this.buttonCreate.TabIndex = 2;
diff --git a/AirplaneWithRadar/AirplaneWithRadar/FormAirplane.cs b/AirplaneWithRadar/AirplaneWithRadar/FormAirplane.cs
index 7b1960c..eae7bbb 100644
--- a/AirplaneWithRadar/AirplaneWithRadar/FormAirplane.cs
+++ b/AirplaneWithRadar/AirplaneWithRadar/FormAirplane.cs
@@ -2,7 +2,7 @@ namespace AirplaneWithRadar
{
public partial class FormAirplane : Form
{
- private DrawingAirplane _airplane;
+ private DrawningAirplane _airplane;
public FormAirplane()
{
InitializeComponent();
@@ -28,7 +28,7 @@ namespace AirplaneWithRadar
private void ButtonCreate_Click(object sender, EventArgs e)
{
Random rnd = new();
- _airplane = new DrawingAirplane(rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)));
+ _airplane = new DrawningAirplane(rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)));
SetData();
Draw();
}
diff --git a/AirplaneWithRadar/AirplaneWithRadar/IDrawningObject.cs b/AirplaneWithRadar/AirplaneWithRadar/IDrawningObject.cs
new file mode 100644
index 0000000..8e6aa9d
--- /dev/null
+++ b/AirplaneWithRadar/AirplaneWithRadar/IDrawningObject.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AirplaneWithRadar
+{
+ internal interface IDrawningObject
+ {
+ ///
+ /// Шаг перемещения объекта
+ ///
+ public float Step { get; }
+ ///
+ /// Установка позиции объекта
+ ///
+ /// Координата X
+ /// Координата Y
+ /// Ширина полотна
+ /// Высота полотна
+ void SetObject(int x, int y, int width, int height);
+ ///
+ /// Изменение направления пермещения объекта
+ ///
+ /// Направление
+ ///
+ void MoveObject(Direction direction);
+ ///
+ /// Отрисовка объекта
+ ///
+ ///
+ void DrawningObject(Graphics g);
+ ///
+ /// Получение текущей позиции объекта
+ ///
+ ///
+ (float Left, float Right, float Top, float Bottom) GetCurrentPosition();
+ }
+}