Исправления движения

This commit is contained in:
Artem 2025-02-14 21:02:43 +04:00
parent 077feaab14
commit ee56e16284
4 changed files with 21 additions and 18 deletions

View File

@ -16,9 +16,9 @@ public class DiselLoko
/// </summary> /// </summary>
public Color ColorBody { get; private set; } public Color ColorBody { get; private set; }
/// <summary> /// <summary>
/// цвет колеса /// цвет бака
/// </summary> /// </summary>
public Color ColorWheel { get; private set; } public Color ColorComportament { get; private set; }
/// <summary> /// <summary>
/// Признак наличия трубы /// Признак наличия трубы
/// </summary> /// </summary>
@ -33,20 +33,20 @@ public class DiselLoko
public double Step => Speed * 100 / Weight; public double Step => Speed * 100 / Weight;
/// <summary> /// <summary>
/// /// Инициализация
/// </summary> /// </summary>
/// <param name="speed"></param> /// <param name="speed"></param>
/// <param name="weight"></param> /// <param name="weight"></param>
/// <param name="colorBody"></param> /// <param name="colorBody"></param>
/// <param name="colorWheel"></param> /// <param name="Comportament"></param>
/// <param name="isTube"></param> /// <param name="isTube"></param>
/// <param name="isComportament"></param> /// <param name="isComportament"></param>
public void Init(int speed, double weight, Color colorBody, Color colorWheel, bool isTube, bool isComportament) public void Init(int speed, double weight, Color colorBody, Color Comportament, bool isTube, bool isComportament)
{ {
Speed = speed; Speed = speed;
Weight = weight; Weight = weight;
ColorBody = colorBody; ColorBody = colorBody;
ColorWheel = colorWheel; ColorComportament = Comportament;
IsTube = isTube; IsTube = isTube;
IsComportament = isComportament; IsComportament = isComportament;
} }

View File

@ -49,14 +49,14 @@ public class DrawningDiselLoko
/// <param name="speed">Скорость</param> /// <param name="speed">Скорость</param>
/// <param name="weight">Вес</param> /// <param name="weight">Вес</param>
/// <param name="colorBody">Цвет тела</param> /// <param name="colorBody">Цвет тела</param>
/// <param name="colorWheel">Цвет колёс</param> /// <param name="colorComportament">Цвет колёс</param>
/// <param name="isTube">Признак езды</param> /// <param name="isTube">Признак езды</param>
/// <param name="isComportament">Признак заполнености</param> /// <param name="isComportament">Признак заполнености</param>
public void Init(int speed, double weight, Color colorBody, Color colorWheel, bool isTube, bool isComportament) public void Init(int speed, double weight, Color colorBody, Color colorComportament, bool isTube, bool isComportament)
{ {
DiselLoko = new DiselLoko(); DiselLoko = new DiselLoko();
DiselLoko.Init(speed, weight, colorBody, colorWheel, isTube, isComportament); DiselLoko.Init(speed, weight, colorBody, colorComportament, isTube, isComportament);
_pictureWidth = null; _pictureWidth = null;
_pictureHeight = null; _pictureHeight = null;
_startPosX = null; _startPosX = null;
@ -140,14 +140,14 @@ public class DrawningDiselLoko
return true; return true;
// вправо // вправо
case Direction.Right: case Direction.Right:
if (_startPosX.Value + DiselLoko.Step + _drawingCarWidth/2 < _pictureWidth.Value - _drawingCarWidth) if (_startPosX.Value + DiselLoko.Step +40 < _pictureWidth.Value - _drawingCarWidth)
{ {
_startPosX += (int)DiselLoko.Step; _startPosX += (int)DiselLoko.Step;
} }
return true; return true;
//вниз //вниз
case Direction.Down: case Direction.Down:
if (_startPosY.Value + DiselLoko.Step + _drawingCarWidth / 4 < _pictureHeight.Value - _drawingCarHeight) if (_startPosY.Value + DiselLoko.Step + 10< _pictureHeight.Value - _drawingCarHeight)
{ {
_startPosY += (int)DiselLoko.Step; _startPosY += (int)DiselLoko.Step;
} }
@ -171,7 +171,7 @@ public class DrawningDiselLoko
Pen pen = new(Color.Black); Pen pen = new(Color.Black);
Brush additionalBrush = new SolidBrush(DiselLoko.ColorBody); Brush additionalBrush = new SolidBrush(DiselLoko.ColorBody);
Brush blueBrush = Brushes.Blue; Brush blueBrush = Brushes.Blue;
Brush grayBrush = Brushes.Gray;
Pen blackPen = new Pen(Color.Black, 2); Pen blackPen = new Pen(Color.Black, 2);
@ -186,7 +186,9 @@ public class DrawningDiselLoko
new Point(_startPosX.Value-10, _startPosY.Value + _drawingCarHeight/2) new Point(_startPosX.Value-10, _startPosY.Value + _drawingCarHeight/2)
}; };
g.DrawPolygon(blackPen, trainBody); Brush br = new SolidBrush(DiselLoko.ColorBody);
g.FillPolygon(br, trainBody);
//разделительная линия //разделительная линия
@ -294,7 +296,8 @@ public class DrawningDiselLoko
new Point(_startPosX.Value +130 , _startPosY.Value + _drawingCarHeight-5), // Нижний правый угол new Point(_startPosX.Value +130 , _startPosY.Value + _drawingCarHeight-5), // Нижний правый угол
new Point(_startPosX.Value + 110, _startPosY.Value + _drawingCarHeight-5) // Нижний левый угол new Point(_startPosX.Value + 110, _startPosY.Value + _drawingCarHeight-5) // Нижний левый угол
}; };
g.FillPolygon(grayBrush, fuelTank); Brush br2 = new SolidBrush(DiselLoko.ColorComportament);
g.FillPolygon(br2, fuelTank);
g.DrawPolygon(blackPen, fuelTank); g.DrawPolygon(blackPen, fuelTank);
} }

View File

@ -50,7 +50,9 @@
Draw(); Draw();
} }
/// <summary>
/// Кнопки движения
/// </summary>
private void ButtonMove_Click(object sender, EventArgs e) private void ButtonMove_Click(object sender, EventArgs e)
{ {
if (_drawningDiselLoko == null) if (_drawningDiselLoko == null)

View File

@ -3,13 +3,11 @@ namespace PrLaba1
internal static class Program internal static class Program
{ {
/// <summary> /// <summary>
/// The main entry point for the application. /// Вход в программу
/// </summary> /// </summary>
[STAThread] [STAThread]
static void Main() static void Main()
{ {
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize(); ApplicationConfiguration.Initialize();
Application.Run(new FormDiselLoko()); Application.Run(new FormDiselLoko());
} }