Изменение SetPictureSize и SetPosition

This commit is contained in:
victinass 2024-02-18 16:48:15 +04:00
parent 337cc0b7e4
commit e89bd91679
5 changed files with 171 additions and 159 deletions

View File

@ -1,6 +1,6 @@
namespace Battleship; namespace Battleship;
/// <summary> /// <summary>
/// /// класс, отвечающий за лево/право/верх/низ
/// </summary> /// </summary>
public enum DirectionType public enum DirectionType
{ {

View File

@ -4,7 +4,6 @@
/// </summary> /// </summary>
public class DrawingBattleship public class DrawingBattleship
{ {
/// <summary> /// <summary>
/// Класс-сущность /// Класс-сущность
/// </summary> /// </summary>
@ -33,12 +32,12 @@ public class DrawingBattleship
/// <summary> /// <summary>
/// Ширина прорисовки линкора /// Ширина прорисовки линкора
/// </summary> /// </summary>
private readonly int _drawingBattleshipWidth = 120; private readonly int _drawingBattleshipWidth = 129;
/// <summary> /// <summary>
/// Высота прорисовки линкора /// Высота прорисовки линкора
/// </summary> /// </summary>
private readonly int _drawingBattleshipHeight = 80; private readonly int _drawingBattleshipHeight = 40;
/// <summary> /// <summary>
/// ///
@ -72,23 +71,30 @@ public class DrawingBattleship
{ {
//TODO проверка, что объект "влезает" в размеры поля //TODO проверка, что объект "влезает" в размеры поля
//если влезает, сохраняем границы и корректируем позицию объекта, если она уже была установлена //если влезает, сохраняем границы и корректируем позицию объекта, если она уже была установлена
_pictureWidth = width;
_pictureHeight = height; if (_drawingBattleshipWidth > width || _drawingBattleshipHeight > height)
if (_pictureWidth <= _drawingBattleshipWidth || _pictureHeight <= _drawingBattleshipHeight)
{ {
_pictureHeight = null;
_pictureWidth = null;
return false; return false;
} }
_pictureWidth = width;
_pictureHeight = height;
if (_startPosX.HasValue || _startPosY.HasValue)
{
if (_startPosX + _drawingBattleshipWidth > _pictureWidth) if (_startPosX + _drawingBattleshipWidth > _pictureWidth)
{ {
_startPosX = _pictureWidth.Value - _drawingBattleshipWidth; _startPosX = _pictureWidth - _drawingBattleshipWidth;
} }
else if (_startPosX < 0) _startPosX = 0;
if (_startPosY + _drawingBattleshipHeight > _pictureHeight) if (_startPosY + _drawingBattleshipHeight > _pictureHeight)
{ {
_startPosY = _pictureHeight.Value - _drawingBattleshipHeight; _startPosY = _pictureHeight - _drawingBattleshipHeight;
}
else if (_startPosY < 0) _startPosY = 0;
} }
return true; return true;
} }
/// <summary> /// <summary>
@ -99,15 +105,27 @@ public class DrawingBattleship
public void SetPosition(int x, int y, int width, int height) public void SetPosition(int x, int y, int width, int height)
{ {
if (!_pictureWidth.HasValue || !_pictureHeight.HasValue)
{
return;
}
// TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы // TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы
// то надо изменить координаты, чтобы он оставался в этих границах // то надо изменить координаты, чтобы он оставался в этих границах
if (x >= 0 && x + _drawingBattleshipWidth <= width && y >= 0 && y + _drawingBattleshipWidth <= height)
if (x + _drawingBattleshipWidth > _pictureWidth)
{ {
_startPosX = x; _startPosX = _pictureWidth - _drawingBattleshipWidth;
_startPosY = y;
_pictureWidth = width;
_pictureHeight = height;
} }
else if (x < 0) _startPosX = 0;
else _startPosX = x;
if (y + _drawingBattleshipHeight > _pictureHeight)
{
_startPosY = _pictureHeight - _drawingBattleshipHeight;
}
else if (y < 0) _startPosY = 0;
else _startPosY = y;
} }

View File

@ -38,9 +38,6 @@ public class EntityBattleship
/// </summary> /// </summary>
public double Step => Speed * 100 / Weight; public double Step => Speed * 100 / Weight;
/// <summary>
///
/// </summary>
/// <param name="speed"></param> /// <param name="speed"></param>
/// <param name="weight"></param> /// <param name="weight"></param>
/// <param name="bodyColor"></param> /// <param name="bodyColor"></param>
@ -59,5 +56,3 @@ public class EntityBattleship
Tower = tower; Tower = tower;
} }
} }

View File

@ -1,7 +1,7 @@
namespace Battleship namespace Battleship;
partial class FormBattleship
{ {
partial class FormBattleship
{
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.
/// </summary> /// </summary>
@ -129,5 +129,4 @@
private Button buttonRight; private Button buttonRight;
private Button buttonUp; private Button buttonUp;
private Button buttonLeft; private Button buttonLeft;
}
} }

View File

@ -5,7 +5,7 @@
public partial class FormBattleship : Form public partial class FormBattleship : Form
{ {
/// <summary> /// <summary>
/// Поле\объект для прорисовки объекта /// Поле/объект для прорисовки объекта
/// </summary> /// </summary>
private DrawingBattleship? _drawingBattleship; //поля с нижнего подчеркивания private DrawingBattleship? _drawingBattleship; //поля с нижнего подчеркивания