Добавление родителей и ввод конструкторов

This commit is contained in:
v.ignatkin 2025-02-14 17:50:02 +04:00
parent 591faeb167
commit 0552a911e0
3 changed files with 29 additions and 8 deletions

View File

@ -26,6 +26,7 @@ public class DrawningBattleship : DrawningShip
public override void DrawTransport(Graphics g) public override void DrawTransport(Graphics g)
{ {
base.DrawTransport(g);
if (EntityShip == null || EntityShip is not EntityBattleship battleShip || !_startPosX.HasValue || !_startPosY.HasValue) if (EntityShip == null || EntityShip is not EntityBattleship battleShip || !_startPosX.HasValue || !_startPosY.HasValue)
{ {
return; return;
@ -111,7 +112,7 @@ public class DrawningBattleship : DrawningShip
g.DrawRectangle(pen, x + 119, y + 24, 12, 2); g.DrawRectangle(pen, x + 119, y + 24, 12, 2);
} }
base.DrawTransport(g);
} }
} }

View File

@ -32,7 +32,7 @@ namespace Battleship.Drawnings
/// Ширина прорисовки корабля /// Ширина прорисовки корабля
/// </summary> /// </summary>
private readonly int _drawningShipWidth = 130; private readonly int _drawningShipWidth = 145;
/// <summary> /// <summary>
/// Высота прорисовки корабля /// Высота прорисовки корабля
/// </summary> /// </summary>
@ -79,11 +79,15 @@ namespace Battleship.Drawnings
/// <param name="height">Высота поля</param> /// <param name="height">Высота поля</param>
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns> /// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
public bool SetPictureSize(int width, int height) public bool SetPictureSize(int width, int height)
{
if (width >= _drawningShipWidth || height >= _drawningShipHeight)
{ {
_pictureWidth = width; _pictureWidth = width;
_pictureHeight = height; _pictureHeight = height;
return true; return true;
} }
return false;
}
/// <summary> /// <summary>
/// Установка позиции /// Установка позиции
/// </summary> /// </summary>
@ -91,10 +95,26 @@ namespace Battleship.Drawnings
/// <param name="y">Координата Y</param> /// <param name="y">Координата Y</param>
public void SetPosition(int x, int y) public void SetPosition(int x, int y)
{ {
if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) if (x < 0)
{ {
return; x = 0;
} }
else if (x + _drawningShipWidth > _pictureWidth.Value)
{
x = _pictureWidth.Value - _drawningShipWidth;
}
if (y < 0)
{
y = 0;
}
else if (y + _drawningShipHeight > _pictureHeight.Value)
{
y = _pictureHeight.Value - _drawningShipHeight;
}
_startPosX = x; _startPosX = x;
_startPosY = y; _startPosY = y;
} }

View File

@ -42,7 +42,7 @@
/// <param name="additionalColor">Дополнительный цвет</param> /// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="turret">Признак наличия орудийной башни</param> /// <param name="turret">Признак наличия орудийной башни</param>
/// <param name="rocketCompartment">Признак наличия отсека под ракеты</param> /// <param name="rocketCompartment">Признак наличия отсека под ракеты</param>
///<param name="weapon">Признак наличия отсека под ракеты</param> ///<param name="weapon">Признак наличия оружия</param>
public EntityBattleship(int speed, double weight, Color bodyColor, Color additionalColor, bool turret, bool rocketCompartment, bool weapon) public EntityBattleship(int speed, double weight, Color bodyColor, Color additionalColor, bool turret, bool rocketCompartment, bool weapon)
: base(speed, weight, bodyColor) : base(speed, weight, bodyColor)
{ {