This commit is contained in:
sofiaivv 2023-10-17 01:27:15 +04:00
parent 9df4243919
commit 2a10ccebd0

View File

@ -19,32 +19,32 @@ namespace MotorBoat
/// <summary> /// <summary>
/// Ширина окна /// Ширина окна
/// </summary> /// </summary>
private int _pictureWight; private int _pictureWight = 800;
/// <summary> /// <summary>
/// Высота окна /// Высота окна
/// </summary> /// </summary>
private int _pictureHeight; private int _pictureHeight = 450;
/// <summary> /// <summary>
/// Левая координата прорисовки катера /// Левая координата прорисовки катера
/// </summary> /// </summary>
private int _startPosX; private int _startPosX = 0;
/// <summary> /// <summary>
/// Правая координата прорисовки катера /// Правая координата прорисовки катера
/// </summary> /// </summary>
private int _startPosY; private int _startPosY = 0;
/// <summary> /// <summary>
/// Ширина прорисовки автомобиля /// Ширина прорисовки автомобиля
/// </summary> /// </summary>
private readonly int _boatWight = 110; private readonly int _boatWight = 120;
/// <summary> /// <summary>
/// Высота прорисовки автомобиля /// Высота прорисовки автомобиля
/// </summary> /// </summary>
private readonly int _boatHeight = 60; private readonly int _boatHeight = 80;
/// <summary> /// <summary>
/// Инициализация свойств /// Инициализация свойств
@ -56,10 +56,10 @@ namespace MotorBoat
/// <param name="wight">Ширина картинки</param> /// <param name="wight">Ширина картинки</param>
/// <param name="height">Выслота картинки</param> /// <param name="height">Выслота картинки</param>
/// <returns>true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах</returns> /// <returns>true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах</returns>
public bool Init(int speed, double weight, Color bodyColor, Color AdditionalColor, public bool Init(int speed, double weight, Color bodyColor, Color AdditionalColor, int width, int height)
int width, int height)
{ {
// ПРИДУМАТЬ ПРОВЕРКИ if (width <= _boatWight || height <= _boatHeight)
return false;
_pictureWight = width; _pictureWight = width;
_pictureHeight = height; _pictureHeight = height;
EntityMotorBoat = new EntityMotorBoat(); EntityMotorBoat = new EntityMotorBoat();
@ -74,9 +74,90 @@ namespace MotorBoat
/// <param name="y">Координата Y</param> /// <param name="y">Координата Y</param>
public void SetPosition(int x, int y) public void SetPosition(int x, int y)
{ {
// ИЗМЕНЕНИЕ X Y if (EntityMotorBoat == null) return;
while (x + _boatWight > _pictureWight)
{
x -= (int)EntityMotorBoat.Step;
}
while (x < 0)
{
x += (int)EntityMotorBoat.Step;
}
while (y + _boatHeight > _pictureHeight)
{
y -= (int)EntityMotorBoat.Step;
}
while (y < 0)
{
y += (int)EntityMotorBoat.Step;
}
_startPosX = x; _startPosX = x;
_startPosY = y; _startPosY = y;
} }
/// <summary>
/// Изменение направления перемещения
/// </summary>
/// <param name="direction">Направление</param>
public void MoveTransport(DirectionType direction)
{
if (EntityMotorBoat == null)
return;
switch (direction)
{
//влево
case DirectionType.Left:
if (_startPosX - EntityMotorBoat.Step > 0)
{
_startPosX -= (int)EntityMotorBoat.Step;
}
break;
//вверх
case DirectionType.Up:
if (_startPosY - EntityMotorBoat.Step > 0)
{
_startPosY -= (int)EntityMotorBoat.Step;
}
break;
//вправо
case DirectionType.Right:
if (_startPosX + _boatWight + EntityMotorBoat.Step < _pictureWight)
{
_startPosX += (int)EntityMotorBoat.Step;
}
break;
//вниз
case DirectionType.Down:
if (_startPosY + _pictureHeight + EntityMotorBoat.Step < _pictureHeight)
{
_startPosY += (int)EntityMotorBoat.Step;
}
break;
}
}
/// <summary>
/// Прорисовка объекта
/// </summary>
/// <param name="g"></param>
public void DrawTransport(Graphics g)
{
if (EntityMotorBoat == null)
{
return;
}
Pen pen = new(Color.Black);
Brush additionalBrush = new SolidBrush(EntityMotorBoat.AdditionalColor);
// границы катера
g.DrawPolygon(pen, );
// штука овальная (палуба?)
g.DrawEllipse(pen, _startPosX + 2, _startPosY + 2, 18, 20);
}
} }
} }