Добавление нового свойства класса DrawningBoat

This commit is contained in:
Софья Якобчук 2023-11-28 00:56:29 +04:00
parent ef542b664e
commit 8f8380b986

View File

@ -28,14 +28,6 @@ namespace Sailboat.DrawingObjects
public IMoveableObject GetMoveableObject => new DrawingObjectBoat(this); public IMoveableObject GetMoveableObject => new DrawingObjectBoat(this);
/// <summary>
/// Конструктор
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
public DrawingBoat(int speed, double weight, Color bodyColor, int width, int height) public DrawingBoat(int speed, double weight, Color bodyColor, int width, int height)
{ {
if (width < _boatWidth || height < _boatHeight) if (width < _boatWidth || height < _boatHeight)
@ -47,16 +39,6 @@ namespace Sailboat.DrawingObjects
EntityBoat = new EntityBoat(speed, weight, bodyColor); EntityBoat = new EntityBoat(speed, weight, bodyColor);
} }
/// <summary>
/// Конструктор
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
/// <param name="boatWidth">Ширина прорисовки лодки</param>
/// <param name="boatHeight">Высота прорисовки лодки</param>
protected DrawingBoat(int speed, double weight, Color bodyColor, int width, int height, int boatWidth, int boatHeight) protected DrawingBoat(int speed, double weight, Color bodyColor, int width, int height, int boatWidth, int boatHeight)
{ {
if (width < _boatWidth || height < _boatHeight) if (width < _boatWidth || height < _boatHeight)
@ -70,11 +52,6 @@ namespace Sailboat.DrawingObjects
EntityBoat = new EntityBoat(speed, weight, bodyColor); EntityBoat = new EntityBoat(speed, weight, bodyColor);
} }
/// <summary>
/// Установка позиции
/// </summary>
/// <param name="x">Координата X</param>
/// <param name="y">Координата Y</param>
public void SetPosition(int x, int y) public void SetPosition(int x, int y)
{ {
if (x < 0 || x + _boatWidth > _pictureWidth) if (x < 0 || x + _boatWidth > _pictureWidth)
@ -89,11 +66,6 @@ namespace Sailboat.DrawingObjects
_startPosY = y; _startPosY = y;
} }
/// <summary>
/// Проверка, что объект может переместится по указанному направлению
/// </summary>
/// <param name="direction">Направление</param>
/// <returns>true - можно переместится по указанному направлению</returns>
public bool CanMove(DirectionType direction) public bool CanMove(DirectionType direction)
{ {
if (EntityBoat == null) if (EntityBoat == null)
@ -102,22 +74,14 @@ namespace Sailboat.DrawingObjects
} }
return direction switch return direction switch
{ {
//влево
DirectionType.Left => _startPosX - EntityBoat.Step > 0, DirectionType.Left => _startPosX - EntityBoat.Step > 0,
//вверх
DirectionType.Up => _startPosY - EntityBoat.Step > 0, DirectionType.Up => _startPosY - EntityBoat.Step > 0,
// вправо
DirectionType.Right => _startPosX + EntityBoat.Step < _pictureWidth, DirectionType.Right => _startPosX + EntityBoat.Step < _pictureWidth,
//вниз
DirectionType.Down => _startPosY + EntityBoat.Step < _pictureHeight, DirectionType.Down => _startPosY + EntityBoat.Step < _pictureHeight,
_ => false _ => false
}; };
} }
/// <summary>
/// Изменение направления перемещения
/// </summary>
/// <param name="direction">Направление</param>
public void MoveTransport(DirectionType direction) public void MoveTransport(DirectionType direction)
{ {
if (!CanMove(direction) || EntityBoat == null) if (!CanMove(direction) || EntityBoat == null)
@ -126,28 +90,24 @@ namespace Sailboat.DrawingObjects
} }
switch (direction) switch (direction)
{ {
//влево
case DirectionType.Left: case DirectionType.Left:
if (_startPosX - EntityBoat.Step > 0) if (_startPosX - EntityBoat.Step > 0)
{ {
_startPosX -= (int)EntityBoat.Step; _startPosX -= (int)EntityBoat.Step;
} }
break; break;
//вверх
case DirectionType.Up: case DirectionType.Up:
if (_startPosY - EntityBoat.Step > 0) if (_startPosY - EntityBoat.Step > 0)
{ {
_startPosY -= (int)EntityBoat.Step; _startPosY -= (int)EntityBoat.Step;
} }
break; break;
//вправо
case DirectionType.Right: case DirectionType.Right:
if (_startPosX + EntityBoat.Step + _boatWidth < _pictureWidth) if (_startPosX + EntityBoat.Step + _boatWidth < _pictureWidth)
{ {
_startPosX += (int)EntityBoat.Step; _startPosX += (int)EntityBoat.Step;
} }
break; break;
//вниз
case DirectionType.Down: case DirectionType.Down:
if (_startPosY + EntityBoat.Step + _boatHeight < _pictureHeight) if (_startPosY + EntityBoat.Step + _boatHeight < _pictureHeight)
{ {
@ -157,10 +117,6 @@ namespace Sailboat.DrawingObjects
} }
} }
/// <summary>
/// Прорисовка объекта
/// </summary>
/// <param name="g"></param>
public virtual void DrawTransport(Graphics g) public virtual void DrawTransport(Graphics g)
{ {
if (EntityBoat == null) if (EntityBoat == null)