diff --git a/Seaplane/DrawingSeaplane.cs b/Seaplane/DrawingSeaplane.cs index 336d5c2..7af95ab 100644 --- a/Seaplane/DrawingSeaplane.cs +++ b/Seaplane/DrawingSeaplane.cs @@ -51,6 +51,12 @@ public class DrawingSeaplane _startPosX = null; _startPosY = null; } + /// + /// Установка границ поля + /// + /// + /// + /// public bool SetPictureSize(int width, int height) { // TODO проверка, что объект "влезает" в размеры поля @@ -86,12 +92,14 @@ public class DrawingSeaplane /// public void SetPosition(int x, int y) { + + // TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы + // то надо изменить координаты, чтобы он оставался в этих границах if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) { return; } - // TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы - // то надо изменить координаты, чтобы он оставался в этих границах + if (x + _drawningPlaneWidth > _pictureWidth) { _startPosX = _pictureWidth - _drawningPlaneWidth; @@ -121,7 +129,7 @@ public class DrawingSeaplane /// /// Изменение направления перемещения /// - /// + /// Направление /// public bool MoveTransport(DirectionType direction) { @@ -131,34 +139,30 @@ public class DrawingSeaplane } switch (direction) { - //влево case DirectionType.Left: if (_startPosX.Value - EntitySeaplane.Step > 0) { _startPosX -= (int)EntitySeaplane.Step; } return true; - //вверх - case DirectionType.Up: - if (_startPosY.Value - EntitySeaplane.Step > 0) - { - _startPosY -= (int)EntitySeaplane.Step; - } - return true; - // вправо case DirectionType.Right: if (_startPosX.Value + _drawningPlaneWidth + EntitySeaplane.Step < _pictureWidth) { _startPosX += (int)EntitySeaplane.Step; } return true; - //вниз case DirectionType.Down: if (_startPosY.Value + _drawningPlaneHeight + EntitySeaplane.Step < _pictureHeight) { _startPosY += (int)EntitySeaplane.Step; } return true; + case DirectionType.Up: //вверх + if (_startPosY - EntitySeaplane.Step > 0) + { + _startPosY -= (int)EntitySeaplane.Step; + } + return true; default: return false; }