Добавление интерфейса

This commit is contained in:
Данила Мочалов 2022-09-25 19:41:17 +04:00
parent 760ccf3570
commit 0991e91205
3 changed files with 67 additions and 0 deletions

View File

@ -142,5 +142,10 @@ namespace Locomotive
_startPosY = _pictureHeight.Value - _locomotiveHeight; _startPosY = _pictureHeight.Value - _locomotiveHeight;
} }
} }
// Получение текущей позиции объекта
public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
{
return (_startPosX, _startPosY, _startPosX + _locomotiveWidth, _startPosY + _locomotiveHeight);
}
} }
} }

View File

@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Locomotive
{
internal class DrawningObjectLocomotive : IDrawningObject
{
private DrawningLocomotive _locomotive = null;
public DrawningObjectLocomotive(DrawningLocomotive locomotive)
{
_locomotive = locomotive;
}
public float Step => _locomotive?.Locomotive?.Step ?? 0;
public void DrawningObject(Graphics g)
{
_locomotive?.DrawTransport(g);
}
public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
{
return _locomotive?.GetCurrentPosition() ?? default;
}
public void MoveObject(Direction direction)
{
_locomotive?.MoveTransport(direction);
}
public void SetObject(int x, int y, int width, int height)
{
_locomotive?.SetPosition(x, y, width, height);
}
}
}

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Locomotive
{
internal interface IDrawningObject
{
/// Шаг перемещения объекта
public float Step { get; }
/// Установка позиции объекта
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();
}
}