лабораторная работа 1 finish

This commit is contained in:
PIBD14CHERTOVANDREY 2024-02-29 09:46:34 +04:00
parent 9866062472
commit 65dd5d5295

View File

@ -18,9 +18,9 @@ public class DrawningRoadTrain
private int? _startPosY; private int? _startPosY;
private readonly int _drawningRoadWidth = 270; private readonly int _drawningRoadWidth = 230;
private readonly int _drawningRoadHeight = 120; private readonly int _drawningRoadHeight = 115;
public void Init(int speed, double weight, Color bodycolor, Color bodytankcolor, bool watertank, bool cleanbrush) public void Init(int speed, double weight, Color bodycolor, Color bodytankcolor, bool watertank, bool cleanbrush)
{ {
@ -32,24 +32,51 @@ public class DrawningRoadTrain
_startPosY = null; _startPosY = null;
} }
public bool SetPictureSize(int width, int height) public bool SetPictureSize(int width, int hight)
{
if (width >= _drawningRoadWidth && hight >= _drawningRoadHeight)
{ {
_pictureWidth = width; _pictureWidth = width;
_pictureHight = height; _pictureHight = hight;
if (_startPosX.HasValue && _startPosY.HasValue)
{
SetPosition(_startPosX.Value, _startPosY.Value);
}
return true; return true;
} }
return false;
}
public void SetPosition(int x, int y) public void SetPosition(int x, int y)
{ {
if (!_pictureHight.HasValue || !_pictureWidth.HasValue) if (!_pictureHight.HasValue || !_pictureWidth.HasValue)
{ {
return; return;
} }
if (x < 0)
{
x = 0;
}
else if (x > _pictureWidth.Value - _drawningRoadWidth)
{
x = _pictureWidth.Value - _drawningRoadWidth;
}
if (y < 0)
{
y = 0;
}
else if (y > _pictureHight.Value - _drawningRoadHeight)
{
y = _pictureHight.Value - _drawningRoadHeight;
}
_startPosX = x; _startPosX = x;
_startPosY = y; _startPosY = y;
} }
public bool MoveTransport(DirectionType direction) public bool MoveTransport(DirectionType direction)
{ {
if (EntityRoadTrain == null || !_startPosX.HasValue || if (EntityRoadTrain == null || !_startPosX.HasValue ||
@ -114,20 +141,20 @@ public class DrawningRoadTrain
if (EntityRoadTrain.WaterTank || EntityRoadTrain.CleanBrush) if (EntityRoadTrain.WaterTank || EntityRoadTrain.CleanBrush)
{ {
g.FillRectangle(bodytankcolor, _startPosX.Value + 140, _startPosY.Value + 70, 100, 2); g.FillRectangle(bodytankcolor, _startPosX.Value + 130, _startPosY.Value + 70, 100, 2);
g.FillRectangle(bodytankcolor, _startPosX.Value + 140, _startPosY.Value + 75, 100, 2); g.FillRectangle(bodytankcolor, _startPosX.Value + 130, _startPosY.Value + 75, 100, 2);
g.FillRectangle(bodytankcolor, _startPosX.Value + 140, _startPosY.Value + 65, 100, 2); g.FillRectangle(bodytankcolor, _startPosX.Value + 130, _startPosY.Value + 65, 100, 2);
g.FillEllipse(bodytankcolor, _startPosX.Value + 20, _startPosY.Value + 10, 100, 50); g.FillEllipse(bodytankcolor, _startPosX.Value + 10, _startPosY.Value + 10, 100, 50);
} }
g.DrawRectangle(pen, _startPosX.Value + 20, _startPosY.Value + 60, 170, 20); g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 60, 170, 20);
g.DrawRectangle(pen, _startPosX.Value + 140, _startPosY.Value, 50, 60); g.DrawRectangle(pen, _startPosX.Value + 120, _startPosY.Value, 50, 60);
g.DrawEllipse(pen, _startPosX.Value + 20, _startPosY.Value + 10, 100, 50); g.DrawEllipse(pen, _startPosX.Value + 10, _startPosY.Value + 10, 100, 50);
// 120 высота // 120 высота
// 270 ширина // 270 ширина
g.FillRectangle(blackcolor, _startPosX.Value + 20, _startPosY.Value + 60, 170, 20); g.FillRectangle(blackcolor, _startPosX.Value, _startPosY.Value + 60, 170, 20);
g.FillRectangle(bodycolor, _startPosX.Value + 140, _startPosY.Value, 50, 60); g.FillRectangle(bodycolor, _startPosX.Value + 120, _startPosY.Value, 50, 60);
g.FillEllipse(blackcolor, _startPosX.Value + 140, _startPosY.Value + 77, 48, 40); g.FillEllipse(blackcolor, _startPosX.Value + 120, _startPosY.Value + 77, 48, 40);
g.FillEllipse(blackcolor, _startPosX.Value + 69, _startPosY.Value + 77, 48, 40); g.FillEllipse(blackcolor, _startPosX.Value + 49, _startPosY.Value + 77, 48, 40);
g.FillEllipse(blackcolor, _startPosX.Value + 20, _startPosY.Value + 77, 48, 40); g.FillEllipse(blackcolor, _startPosX.Value, _startPosY.Value + 77, 48, 40);
} }
} }