Добавление нового свойства класса DrawningBoat
This commit is contained in:
parent
ef542b664e
commit
8f8380b986
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user