Петрушин Егор ПИбд-22 Лабораторная работа №2 "Самоходная артиллерийская установка" #7

Closed
Egor_Petrushin wants to merge 2 commits from PIbd-22_Petrushin_E.A._Lab2 into PIbd-22_Petrushin_E.A._Lab1
5 changed files with 77 additions and 39 deletions
Showing only changes of commit 6c391ce4f7 - Show all commits

View File

@ -27,11 +27,11 @@ namespace SelfPropelledArtilleryUnit
/// <summary>
/// Левая координата прорисовки автомобиля
/// </summary>
private int _startPosX;
protected int _startPosX;
/// <summary>
/// Верхняя кооридната прорисовки автомобиля
/// </summary>
private int _startPosY;
protected int _startPosY;
/// <summary>
/// Ширина прорисовки автомобиля
/// </summary>
@ -46,28 +46,22 @@ namespace SelfPropelledArtilleryUnit
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес</param>
/// <param name="bodyColor">Цвет кузова</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="bodyKit">Признак наличия залповой установки</param>
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
/// <returns>true - объект создан, false - проверка не пройдена,нельзя создать объект в этих размерах</returns>
public bool Init(int speed, double weight, Color bodyColor, Color
additionalColor, bool bodyKit, int width, int height)
public DrawingSPAU(int speed, double weight, Color bodyColor, int width, int height)
{
_pictureWidth = width;
_pictureHeight = height;
if (_carHeight >= height)
{
return false;
return;
}
if (_carWidth >= width)
{
return false;
return;
}
EntitySPAU = new EntitySPAU();
EntitySPAU.Init(speed, weight, bodyColor, additionalColor,
bodyKit);
return true;
EntitySPAU = new EntitySPAU(speed, weight, bodyColor);
}
/// <summary>
/// Установка позиции
@ -132,6 +126,11 @@ namespace SelfPropelledArtilleryUnit
/// <summary>
/// Прорисовка объекта
/// </summary>
public virtual void DrawingZU(Graphics g)
{}
/// <summary>
/// Прорисовка объекта
/// </summary>
/// <param name="g"></param>
public void DrawTransport(Graphics g)
{
@ -140,14 +139,9 @@ namespace SelfPropelledArtilleryUnit
return;
}
Pen penBlack = new(Color.Black);
Brush additionalBrush = new SolidBrush(EntitySPAU.AdditionalColor);
// обвесы
if (EntitySPAU.BodyKit)
{
//залповая усутановка
g.FillRectangle(additionalBrush, _startPosX + 15, _startPosY + 20, 20, 40);
g.DrawLine(penBlack, _startPosX + 5, _startPosY + 20, _startPosX + 15, _startPosY + 25);
}
DrawingZU(g);
//гусеницы
Brush brBlack = new SolidBrush(Color.Black);
Brush brBody = new SolidBrush(EntitySPAU.BodyColor);

View File

@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SelfPropelledArtilleryUnit
{
public class DrawingSPAUchild : DrawingSPAU
{
public new EntitySPAUchild EntitySPAU;
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="bodyKit">Признак наличия залповой установки</param>
public override void DrawingZU(Graphics g)
{
base.DrawingZU(g);
Pen penBlack = new Pen(Color.Black);
Brush additionalBrush = new SolidBrush(EntitySPAU.AdditionalColor);
// обвесы
if (EntitySPAU.BodyKit)
{
//залповая усутановка
g.FillRectangle(additionalBrush, _startPosX + 15, _startPosY + 20, 20, 40);
g.DrawLine(penBlack, _startPosX + 5, _startPosY + 20, _startPosX + 15, _startPosY + 25);
}
}
public DrawingSPAUchild(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, int width, int height) : base(speed, weight, bodyColor, width, height)
{
EntitySPAU = new EntitySPAUchild(speed, weight, bodyColor, additionalColor, bodyKit);
}
}
}

View File

@ -2,6 +2,7 @@
{
public class EntitySPAU
{
/// <summary>
/// Скорость
/// </summary>
@ -15,14 +16,6 @@
/// </summary>
public Color BodyColor { get; private set; }
/// <summary>
/// Дополнительный цвет (для опциональных элементов)
/// </summary>
public Color AdditionalColor { get; private set; }
/// <summary>
/// Признак (опция) наличия залповой установки
/// </summary>
public bool BodyKit { get; private set; }
/// <summary>
/// Шаг перемещения САУ
/// </summary>
public double Step => (double)Speed * 100 / Weight;
@ -32,18 +25,10 @@
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес автомобиля</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="bodyKit">Признак наличия обвеса</param>
/// <param name="wing">Признак наличия антикрыла</param>
/// <param name="sportLine">Признак наличия гоночной полосы</param>
public void Init(int speed, double weight, Color bodyColor, Color
additionalColor, bool bodyKit)
{
public EntitySPAU(int speed, double weight, Color bodyColor) {
Speed = speed;
Weight = weight;
BodyColor = bodyColor;
AdditionalColor = additionalColor;
BodyKit = bodyKit;
}
}
}

View File

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SelfPropelledArtilleryUnit
{
public class EntitySPAUchild : EntitySPAU
Review

Класс-сущность из первой части должен стать дочерним классом, а не родительским

Класс-сущность из первой части должен стать дочерним классом, а не родительским
{
/// <summary>
/// Дополнительный цвет (для опциональных элементов)
/// </summary>
public Color AdditionalColor { get; private set; }
/// <summary>
/// Признак (опция) наличия залповой установки
/// </summary>
public bool BodyKit { get; private set; }
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="bodyKit">Признак наличия залповой установки</param>
public EntitySPAUchild(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit) : base(speed, weight, bodyColor)
{
AdditionalColor = additionalColor;
BodyKit = bodyKit;
}
}
}

View File

@ -38,8 +38,7 @@ namespace SelfPropelledArtilleryUnit
private void buttonCreate_Click(object sender, EventArgs e)
{
Random random = new();
_drawningSPAU = new DrawingSPAU();
_drawningSPAU.Init(random.Next(100, 300),
_drawningSPAU = new DrawingSPAUchild(random.Next(100, 300),
random.Next(1000, 3000),
Color.FromArgb(random.Next(0, 256), random.Next(0, 256),
random.Next(0, 256)),