Петрушин Егор ПИбд-22 Лабораторная работа №2 "Самоходная артиллерийская установка" #7
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
{
|
||||
/// <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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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)),
|
||||
|
Loading…
x
Reference in New Issue
Block a user
Класс-сущность из первой части должен стать дочерним классом, а не родительским