diff --git a/Project_airbus/Project_airbus/DrawingAirbus.cs b/Project_airbus/Project_airbus/DrawingAirbus.cs index efc24c3..20e7e1d 100644 --- a/Project_airbus/Project_airbus/DrawingAirbus.cs +++ b/Project_airbus/Project_airbus/DrawingAirbus.cs @@ -38,12 +38,12 @@ public class DrawingAirbus /// /// Ширина прорисовки самолета(аэробуса) /// - private readonly int _drawingCarWidth = 130; + private readonly int _drawingAirbusWidth = 130; /// /// Высота прорисовки самолета(аэробуса) /// - private readonly int _drawingCarHeight = 60; + private readonly int _drawingAirbusHeight = 60; @@ -56,8 +56,8 @@ public class DrawingAirbus /// Вес самолета /// Основной цвет /// Дополнительный цвет - /// ПРизнак наличия отсека - /// ПРизнак наличия дополнительных двигателей + /// Признак наличия отсека + /// Признак наличия дополнительных двигателей public void Init(int speed, double weight, Color bodyAirbus, Color additionalColor, bool bodySection, bool motor) { EntityAirbus = new EntityAirbus(); @@ -78,9 +78,31 @@ public class DrawingAirbus /// true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах public bool SetPictureSize(int wigth, int height) { - _pictureWidth = wigth; - _pictureHeight = height; + + if(wigth < _drawingAirbusWidth || height < _drawingAirbusHeight) { return false; }; + _pictureWidth = wigth; + _pictureHeight = height; + if(_startPosX !=null || _startPosY != null) + { + if(_startPosX + _drawingAirbusWidth > _pictureWidth) + { + _startPosX = -_drawingAirbusWidth + _pictureWidth; + } + else if(_startPosX < 0) + { + _startPosX = 0; + } + if(_startPosY + _drawingAirbusHeight > _pictureHeight) + { + _startPosY = - _drawingAirbusHeight + _pictureHeight; + } + else if(_startPosY < 0) + { + _startPosY = 0; + } + } return true; + } @@ -95,8 +117,33 @@ public class DrawingAirbus { return; } - _startPosX = x; - _startPosY = y; + + if (x+_drawingAirbusWidth > _pictureWidth) + { + _startPosX = _pictureWidth - _drawingAirbusWidth; + } + else if(x < 0) + { + _startPosX = 0; + } + else + { + _startPosX = x; + } + + if(y + _drawingAirbusHeight > _pictureHeight) + { + _startPosY = _pictureHeight - _drawingAirbusHeight; + } + else if(y < 0) + { + _startPosY = 0; + } + else + { + _startPosY = y; + } + } /// @@ -119,13 +166,13 @@ public class DrawingAirbus } return true; case DirectionType.Right: - if (_startPosX.Value + _drawingCarWidth + EntityAirbus.step < _pictureWidth) + if (_startPosX.Value + _drawingAirbusWidth + EntityAirbus.step < _pictureWidth) { _startPosX += (int)EntityAirbus.step; } return true; case DirectionType.Down: - if (_startPosY.Value + _drawingCarHeight + EntityAirbus.step < _pictureHeight) + if (_startPosY.Value + _drawingAirbusHeight + EntityAirbus.step < _pictureHeight) { _startPosY += (int)EntityAirbus.step; }