Этап 4, движение рисунка
This commit is contained in:
parent
520f30955f
commit
077feaab14
@ -88,6 +88,22 @@ public class DrawningDiselLoko
|
||||
return;
|
||||
}
|
||||
|
||||
if (x < 0)
|
||||
{
|
||||
x = 1;
|
||||
}
|
||||
|
||||
if (y < 0) { y = 1; }
|
||||
|
||||
if (x + _drawingCarWidth > _pictureWidth.Value) {
|
||||
x = _pictureWidth.Value - _drawingCarWidth - 1;
|
||||
}
|
||||
|
||||
if (y + _drawingCarHeight > _pictureHeight.Value)
|
||||
{
|
||||
y = _pictureHeight.Value - _drawingCarHeight - 1;
|
||||
}
|
||||
|
||||
// TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы
|
||||
// то надо изменить координаты, чтобы он оставался в этих границах
|
||||
_startPosX = x;
|
||||
@ -110,7 +126,7 @@ public class DrawningDiselLoko
|
||||
{
|
||||
//влево
|
||||
case Direction.Left:
|
||||
if (_startPosX.Value - DiselLoko.Step > 0)
|
||||
if (_startPosX.Value - DiselLoko.Step - 10 > 0)
|
||||
{
|
||||
_startPosX -= (int)DiselLoko.Step;
|
||||
}
|
||||
@ -124,14 +140,14 @@ public class DrawningDiselLoko
|
||||
return true;
|
||||
// вправо
|
||||
case Direction.Right:
|
||||
if (_startPosX.Value - DiselLoko.Step > 0)
|
||||
if (_startPosX.Value + DiselLoko.Step + _drawingCarWidth/2 < _pictureWidth.Value - _drawingCarWidth)
|
||||
{
|
||||
_startPosX += (int)DiselLoko.Step;
|
||||
}
|
||||
return true;
|
||||
//вниз
|
||||
case Direction.Down:
|
||||
if (_startPosX.Value - DiselLoko.Step > 0)
|
||||
if (_startPosY.Value + DiselLoko.Step + _drawingCarWidth / 4 < _pictureHeight.Value - _drawingCarHeight)
|
||||
{
|
||||
_startPosY += (int)DiselLoko.Step;
|
||||
}
|
||||
@ -155,6 +171,7 @@ public class DrawningDiselLoko
|
||||
Pen pen = new(Color.Black);
|
||||
Brush additionalBrush = new SolidBrush(DiselLoko.ColorBody);
|
||||
Brush blueBrush = Brushes.Blue;
|
||||
Brush grayBrush = Brushes.Gray;
|
||||
|
||||
|
||||
Pen blackPen = new Pen(Color.Black, 2);
|
||||
@ -257,16 +274,31 @@ public class DrawningDiselLoko
|
||||
// труба
|
||||
if (DiselLoko.IsTube)
|
||||
{
|
||||
|
||||
// **Труба (полигон)**
|
||||
Point[] chimney = {
|
||||
new Point(_startPosX.Value + 20, _startPosY.Value - 20),
|
||||
new Point(_startPosX.Value + 35, _startPosY.Value - 20),
|
||||
new Point(_startPosX.Value + 35, _startPosY.Value),
|
||||
new Point(_startPosX.Value + 20, _startPosY.Value)
|
||||
};
|
||||
g.FillPolygon(blackBrush, chimney);
|
||||
}
|
||||
|
||||
// отсек
|
||||
if (DiselLoko.IsComportament)
|
||||
{
|
||||
/*g.FillRectangle(additionalBrush, _startPosX.Value + 75, _startPosY.Value + 23, 25, 15);
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value + 35, _startPosY.Value + 23, 35, 15);
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value + 10, _startPosY.Value + 23, 20, 15);*/
|
||||
//Топливный отсек(полигон)
|
||||
Point[] fuelTank = {
|
||||
new Point(_startPosX.Value + 110, _startPosY.Value + _drawingCarHeight-20), // Верхний левый угол
|
||||
new Point(_startPosX.Value + 130, _startPosY.Value + _drawingCarHeight -20), // Верхний правый угол
|
||||
new Point(_startPosX.Value +130 , _startPosY.Value + _drawingCarHeight-5), // Нижний правый угол
|
||||
new Point(_startPosX.Value + 110, _startPosY.Value + _drawingCarHeight-5) // Нижний левый угол
|
||||
};
|
||||
g.FillPolygon(grayBrush, fuelTank);
|
||||
g.DrawPolygon(blackPen, fuelTank);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user