setpos() fix

This commit is contained in:
Данил Лопатин 2024-04-01 14:05:54 +03:00
parent 373daa8bba
commit 67e35f5776

View File

@ -35,10 +35,6 @@ public class DrawningWarmlyLocomotive
/// <summary> /// <summary>
/// Инициализация свойств /// Инициализация свойств
/// </summary> /// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
public void Init(int speed, double weight, Color bodyColor, Color public void Init(int speed, double weight, Color bodyColor, Color
additionalColor, bool tube, bool fuelTank) additionalColor, bool tube, bool fuelTank)
@ -54,9 +50,7 @@ public class DrawningWarmlyLocomotive
/// <summary> /// <summary>
/// Установка границ поля /// Установка границ поля
/// </summary> /// </summary>
/// <param name="width">Ширина поля</param>
/// <param name="height">Высота поля</param>
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
public bool SetPictureSize(int width, int height) public bool SetPictureSize(int width, int height)
{ {
if (width >= _drawningLocomotiveWidth && height >= _drawningLocomotiveHeight) { if (width >= _drawningLocomotiveWidth && height >= _drawningLocomotiveHeight) {
@ -70,8 +64,7 @@ public class DrawningWarmlyLocomotive
/// <summary> /// <summary>
/// Установка позиции /// Установка позиции
/// </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 (!_pictureHeight.HasValue || !_pictureWidth.HasValue) if (!_pictureHeight.HasValue || !_pictureWidth.HasValue)
@ -81,7 +74,7 @@ public class DrawningWarmlyLocomotive
if ((y + _drawningLocomotiveHeight) > _pictureHeight) if ((y + _drawningLocomotiveHeight) > _pictureHeight)
{ {
_startPosY = y - _drawningLocomotiveHeight; _startPosY = _pictureHeight - _drawningLocomotiveHeight;
} }
else else
{ {
@ -90,7 +83,7 @@ public class DrawningWarmlyLocomotive
if ((x + _drawningLocomotiveWidth) > _pictureWidth) if ((x + _drawningLocomotiveWidth) > _pictureWidth)
{ {
_startPosX = x - _drawningLocomotiveWidth; _startPosX = _pictureWidth - _drawningLocomotiveWidth;
} }
else else
{ {
@ -101,12 +94,10 @@ public class DrawningWarmlyLocomotive
/// <summary> /// <summary>
/// Изменение направления перемещения /// Изменение направления перемещения
/// </summary> /// </summary>
/// <param name="direction">Направление</param>
/// <returns>true - перемещене выполнено, false - перемещение невозможно</returns>
public bool MoveTransport(DirectionType direction) public bool MoveTransport(DirectionType direction)
{ {
if (EntityWarmlyLocomotive == null || !_startPosX.HasValue || if (EntityWarmlyLocomotive == null || !_startPosX.HasValue || !_startPosY.HasValue)
!_startPosY.HasValue)
{ {
return false; return false;
} }
@ -147,11 +138,10 @@ public class DrawningWarmlyLocomotive
/// <summary> /// <summary>
/// Прорисовка объекта /// Прорисовка объекта
/// </summary> /// </summary>
/// <param name="g"></param>
public void DrawTransport(Graphics g) public void DrawTransport(Graphics g)
{ {
if (EntityWarmlyLocomotive == null || !_startPosX.HasValue || if (EntityWarmlyLocomotive == null || !_startPosX.HasValue || !_startPosY.HasValue)
!_startPosY.HasValue)
{ {
return; return;
} }