Коммит 2
This commit is contained in:
parent
6db3ae138c
commit
5b60ac283e
@ -8,13 +8,8 @@ namespace ElectricLocomotive
|
|||||||
{
|
{
|
||||||
internal class BushesMap : AbstractMap
|
internal class BushesMap : AbstractMap
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Цвет участка закрытого
|
|
||||||
/// </summary>
|
|
||||||
private readonly Pen barrierColor = new Pen(Color.DarkGreen, 3);
|
private readonly Pen barrierColor = new Pen(Color.DarkGreen, 3);
|
||||||
/// <summary>
|
|
||||||
/// Цвет участка открытого
|
|
||||||
/// </summary>
|
|
||||||
private readonly Brush roadColor = new SolidBrush(Color.Brown);
|
private readonly Brush roadColor = new SolidBrush(Color.Brown);
|
||||||
|
|
||||||
protected override void DrawBarrierPart(Graphics g, int i, int j)
|
protected override void DrawBarrierPart(Graphics g, int i, int j)
|
||||||
|
@ -6,31 +6,20 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace ElectricLocomotive
|
namespace ElectricLocomotive
|
||||||
{
|
{
|
||||||
internal class DrawningHardLocomotive : DrawningLocomotive
|
internal class DrawningElectricLocomotive : DrawningLocomotive
|
||||||
{
|
{
|
||||||
/// <summary>
|
public DrawningElectricLocomotive(int speed, float weight, Color bodyColor, Color dopColor, bool bodyKit, bool wing, bool sportLine) :
|
||||||
/// Инициализация свойств
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="speed">Скорость</param>
|
|
||||||
/// <param name="weight">Вес автомобиля</param>
|
|
||||||
/// <param name="bodyColor">Цвет кузова</param>
|
|
||||||
/// <param name="dopColor">Дополнительный цвет</param>
|
|
||||||
/// <param name="bodyKit">Признак наличия обвеса</param>
|
|
||||||
/// <param name="wing">Признак наличия антикрыла</param>
|
|
||||||
/// <param name="sportLine">Признак наличия гоночной полосы</param>
|
|
||||||
public DrawningHardLocomotive(int speed, float weight, Color bodyColor, Color dopColor, bool bodyKit, bool wing, bool sportLine) :
|
|
||||||
base(speed, weight, bodyColor, 110, 60)
|
base(speed, weight, bodyColor, 110, 60)
|
||||||
{
|
{
|
||||||
Locomotive = new EntityHardLocomotive(speed, weight, bodyColor, dopColor, bodyKit, wing, sportLine);
|
Locomotive = new EntityElectricLocomotive(speed, weight, bodyColor, dopColor, bodyKit, wing, sportLine);
|
||||||
}
|
}
|
||||||
public override void DrawTransport(Graphics g)
|
public override void DrawTransport(Graphics g)
|
||||||
{
|
{
|
||||||
if (Locomotive is not EntityHardLocomotive sportCar)
|
if (Locomotive is not EntityElectricLocomotive sportCar)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Pen pen = new(Color.Black);
|
Pen pen = new(Color.Black);
|
||||||
Pen window = new(Color.Blue);
|
Pen window = new(Color.Blue);
|
||||||
Brush dopBrush = new SolidBrush(sportCar.DopColor);
|
Brush dopBrush = new SolidBrush(sportCar.DopColor);
|
@ -82,12 +82,6 @@ namespace ElectricLocomotive
|
|||||||
_locomotiveWidth = locomotiveWidth;
|
_locomotiveWidth = locomotiveWidth;
|
||||||
_locomotiveHeight = locomotiveHeight;
|
_locomotiveHeight = locomotiveHeight;
|
||||||
}
|
}
|
||||||
///
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Отрисовка автомобиля
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="g"></param>
|
|
||||||
public virtual void DrawTransport(Graphics g)
|
public virtual void DrawTransport(Graphics g)
|
||||||
{
|
{
|
||||||
if (_startPosX < 0 || _startPosY < 0
|
if (_startPosX < 0 || _startPosY < 0
|
||||||
@ -133,11 +127,6 @@ namespace ElectricLocomotive
|
|||||||
g.DrawPolygon(pen, new Point[] { new Point(Convert.ToInt32(_startPosX) + 10, Convert.ToInt32(_startPosY) + 60), new Point(Convert.ToInt32(_startPosX) + 10, Convert.ToInt32(_startPosY) + 10), new Point(Convert.ToInt32(_startPosX) + 110, Convert.ToInt32(_startPosY) + 10), new Point(Convert.ToInt32(_startPosX) + 140, Convert.ToInt32(_startPosY) + 30), new Point(Convert.ToInt32(_startPosX) + 140, Convert.ToInt32(_startPosY) + 60) });
|
g.DrawPolygon(pen, new Point[] { new Point(Convert.ToInt32(_startPosX) + 10, Convert.ToInt32(_startPosY) + 60), new Point(Convert.ToInt32(_startPosX) + 10, Convert.ToInt32(_startPosY) + 10), new Point(Convert.ToInt32(_startPosX) + 110, Convert.ToInt32(_startPosY) + 10), new Point(Convert.ToInt32(_startPosX) + 140, Convert.ToInt32(_startPosY) + 30), new Point(Convert.ToInt32(_startPosX) + 140, Convert.ToInt32(_startPosY) + 60) });
|
||||||
|
|
||||||
}
|
}
|
||||||
/// <summary>
|
|
||||||
/// Смена границ формы отрисовки
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="width">Ширина картинки</param>
|
|
||||||
/// <param name="height">Высота картинки</param>
|
|
||||||
public void ChangeBorders(int width, int height)
|
public void ChangeBorders(int width, int height)
|
||||||
{
|
{
|
||||||
_pictureWidth = width;
|
_pictureWidth = width;
|
||||||
@ -157,10 +146,6 @@ namespace ElectricLocomotive
|
|||||||
_startPosY = _pictureHeight.Value - _locomotiveHeight;
|
_startPosY = _pictureHeight.Value - _locomotiveHeight;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
|
||||||
/// Получение текущей позиции объекта
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
|
public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
|
||||||
{
|
{
|
||||||
return (_startPosX, _startPosY, _startPosX + _locomotiveWidth, _startPosY + _locomotiveHeight);
|
return (_startPosX, _startPosY, _startPosX + _locomotiveWidth, _startPosY + _locomotiveHeight);
|
||||||
|
@ -34,7 +34,6 @@ namespace ElectricLocomotive
|
|||||||
|
|
||||||
void IDrawningObject.DrawningObject(Graphics g)
|
void IDrawningObject.DrawningObject(Graphics g)
|
||||||
{
|
{
|
||||||
// TODO
|
|
||||||
_locomotive.DrawTransport(g);
|
_locomotive.DrawTransport(g);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ElectricLocomotive
|
||||||
|
{
|
||||||
|
internal class EntityElectricLocomotive : EntityLocomotive
|
||||||
|
{
|
||||||
|
public Color DopColor { get; private set; }
|
||||||
|
public bool BodyKit { get; private set; }
|
||||||
|
public bool Wing { get; private set; }
|
||||||
|
public bool SportLine { get; private set; }
|
||||||
|
public EntityElectricLocomotive(int speed, float weight, Color bodyColor, Color dopColor, bool bodyKit, bool wing, bool sportLine) :
|
||||||
|
base(speed, weight, bodyColor)
|
||||||
|
{
|
||||||
|
DopColor = dopColor;
|
||||||
|
BodyKit = bodyKit;
|
||||||
|
Wing = wing;
|
||||||
|
SportLine = sportLine;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,46 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace ElectricLocomotive
|
|
||||||
{
|
|
||||||
internal class EntityHardLocomotive : EntityLocomotive
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Дополнительный цвет
|
|
||||||
/// </summary>
|
|
||||||
public Color DopColor { get; private set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Признак наличия обвеса
|
|
||||||
/// </summary>
|
|
||||||
public bool BodyKit { get; private set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Признак наличия антикрыла
|
|
||||||
/// </summary>
|
|
||||||
public bool Wing { get; private set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Признак наличия гоночной полосы
|
|
||||||
/// </summary>
|
|
||||||
public bool SportLine { get; private set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Инициализация свойств
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="speed">Скорость</param>
|
|
||||||
/// <param name="weight">Вес автомобиля</param>
|
|
||||||
/// <param name="bodyColor">Цвет кузова</param>
|
|
||||||
/// <param name="dopColor">Дополнительный цвет</param>
|
|
||||||
/// <param name="bodyKit">Признак наличия обвеса</param>
|
|
||||||
/// <param name="wing">Признак наличия антикрыла</param>
|
|
||||||
/// <param name="sportLine">Признак наличия гоночной полосы</param>
|
|
||||||
public EntityHardLocomotive(int speed, float weight, Color bodyColor, Color dopColor, bool bodyKit, bool wing, bool sportLine) :
|
|
||||||
base(speed, weight, bodyColor)
|
|
||||||
{
|
|
||||||
DopColor = dopColor;
|
|
||||||
BodyKit = bodyKit;
|
|
||||||
Wing = wing;
|
|
||||||
SportLine = sportLine;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -9,29 +9,10 @@ namespace ElectricLocomotive
|
|||||||
{
|
{
|
||||||
internal class EntityLocomotive
|
internal class EntityLocomotive
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Скорость
|
|
||||||
/// </summary>
|
|
||||||
public int Speed { get; private set; }
|
public int Speed { get; private set; }
|
||||||
/// <summary>
|
|
||||||
/// Вес
|
|
||||||
/// </summary>
|
|
||||||
public float Weight { get; private set; }
|
public float Weight { get; private set; }
|
||||||
/// <summary>
|
|
||||||
/// Цвет кузова
|
|
||||||
/// </summary>
|
|
||||||
public Color BodyColor { get; private set; }
|
public Color BodyColor { get; private set; }
|
||||||
/// <summary>
|
|
||||||
/// Шаг перемещения автомобиля
|
|
||||||
/// </summary>
|
|
||||||
public float Step => Speed * 100 / Weight;
|
public float Step => Speed * 100 / Weight;
|
||||||
/// <summary>
|
|
||||||
/// Инициализация полей объекта-класса автомобиля
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="speed"></param>
|
|
||||||
/// <param name="weight"></param>
|
|
||||||
/// <param name="bodyColor"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public EntityLocomotive(int speed, float weight, Color bodyColor)
|
public EntityLocomotive(int speed, float weight, Color bodyColor)
|
||||||
{
|
{
|
||||||
Random rnd = new Random();
|
Random rnd = new Random();
|
||||||
|
@ -8,13 +8,7 @@ namespace ElectricLocomotive
|
|||||||
{
|
{
|
||||||
internal class FieldMap : AbstractMap
|
internal class FieldMap : AbstractMap
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Цвет участка закрытого
|
|
||||||
/// </summary>
|
|
||||||
private readonly Brush barrierColor = new SolidBrush(Color.Brown);
|
private readonly Brush barrierColor = new SolidBrush(Color.Brown);
|
||||||
/// <summary>
|
|
||||||
/// Цвет участка открытого
|
|
||||||
/// </summary>
|
|
||||||
private readonly Brush roadColor = new SolidBrush(Color.Green);
|
private readonly Brush roadColor = new SolidBrush(Color.Green);
|
||||||
|
|
||||||
protected override void DrawBarrierPart(Graphics g, int i, int j)
|
protected override void DrawBarrierPart(Graphics g, int i, int j)
|
||||||
|
@ -87,7 +87,7 @@ namespace ElectricLocomotive
|
|||||||
private void ButtonCreateModif_Click(object sender, EventArgs e)
|
private void ButtonCreateModif_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Random rnd = new();
|
Random rnd = new();
|
||||||
_locomotive = new DrawningHardLocomotive(rnd.Next(100, 300), rnd.Next(1000, 2000),
|
_locomotive = new DrawningElectricLocomotive(rnd.Next(100, 300), rnd.Next(1000, 2000),
|
||||||
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
|
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
|
||||||
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
|
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
|
||||||
Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)));
|
Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)));
|
||||||
|
@ -73,7 +73,7 @@ namespace ElectricLocomotive
|
|||||||
private void ButtonCreateModif_Click(object sender, EventArgs e)
|
private void ButtonCreateModif_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Random rnd = new();
|
Random rnd = new();
|
||||||
var car = new DrawningHardLocomotive(rnd.Next(100, 300), rnd.Next(1000, 2000),
|
var car = new DrawningElectricLocomotive(rnd.Next(100, 300), rnd.Next(1000, 2000),
|
||||||
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
|
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
|
||||||
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
|
Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)),
|
||||||
Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)));
|
Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)));
|
||||||
|
@ -8,33 +8,10 @@ namespace ElectricLocomotive
|
|||||||
{
|
{
|
||||||
internal interface IDrawningObject
|
internal interface IDrawningObject
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Шаг перемещения объекта
|
|
||||||
/// </summary>
|
|
||||||
public float Step { get; }
|
public float Step { get; }
|
||||||
/// <summary>
|
|
||||||
/// Установка позиции объекта
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="x">Координата X</param>
|
|
||||||
/// <param name="y">Координата Y</param>
|
|
||||||
/// <param name="width">Ширина полотна</param>
|
|
||||||
/// <param name="height">Высота полотна</param>
|
|
||||||
void SetObject(int x, int y, int width, int height);
|
void SetObject(int x, int y, int width, int height);
|
||||||
/// <summary>
|
|
||||||
/// Изменение направления пермещения объекта
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="direction">Направление</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
void MoveObject(Direction direction);
|
void MoveObject(Direction direction);
|
||||||
/// <summary>
|
|
||||||
/// Отрисовка объекта
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="g"></param>
|
|
||||||
void DrawningObject(Graphics g);
|
void DrawningObject(Graphics g);
|
||||||
/// <summary>
|
|
||||||
/// Получение текущей позиции объекта
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
(float Left, float Right, float Top, float Bottom) GetCurrentPosition();
|
(float Left, float Right, float Top, float Bottom) GetCurrentPosition();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,13 +8,7 @@ namespace ElectricLocomotive
|
|||||||
{
|
{
|
||||||
internal class SimpleMap : AbstractMap
|
internal class SimpleMap : AbstractMap
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Цвет участка закрытого
|
|
||||||
/// </summary>
|
|
||||||
private readonly Brush barrierColor = new SolidBrush(Color.Black);
|
private readonly Brush barrierColor = new SolidBrush(Color.Black);
|
||||||
/// <summary>
|
|
||||||
/// Цвет участка открытого
|
|
||||||
/// </summary>
|
|
||||||
private readonly Brush roadColor = new SolidBrush(Color.Gray);
|
private readonly Brush roadColor = new SolidBrush(Color.Gray);
|
||||||
|
|
||||||
protected override void DrawBarrierPart(Graphics g, int i, int j)
|
protected override void DrawBarrierPart(Graphics g, int i, int j)
|
||||||
|
Loading…
Reference in New Issue
Block a user