Добавление родителей и ввод конструкторов
This commit is contained in:
parent
98dc9e75f3
commit
976bf76ff8
53
ProjectSportCar/FormMonorail.Designer.cs
generated
53
ProjectSportCar/FormMonorail.Designer.cs
generated
@ -33,6 +33,7 @@
|
|||||||
buttonMove_Left = new Button();
|
buttonMove_Left = new Button();
|
||||||
buttonMove_Up = new Button();
|
buttonMove_Up = new Button();
|
||||||
pictureBoxMonorail = new PictureBox();
|
pictureBoxMonorail = new PictureBox();
|
||||||
|
buttonCreateModernMonorail = new Button();
|
||||||
buttonCreateMonorail = new Button();
|
buttonCreateMonorail = new Button();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBoxMonorail).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureBoxMonorail).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
@ -42,10 +43,9 @@
|
|||||||
buttonMove_Right.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
buttonMove_Right.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
buttonMove_Right.BackgroundImage = Properties.Resources.ArrowRight;
|
buttonMove_Right.BackgroundImage = Properties.Resources.ArrowRight;
|
||||||
buttonMove_Right.BackgroundImageLayout = ImageLayout.Stretch;
|
buttonMove_Right.BackgroundImageLayout = ImageLayout.Stretch;
|
||||||
buttonMove_Right.Location = new Point(875, 569);
|
buttonMove_Right.Location = new Point(766, 427);
|
||||||
buttonMove_Right.Margin = new Padding(3, 4, 3, 4);
|
|
||||||
buttonMove_Right.Name = "buttonMove_Right";
|
buttonMove_Right.Name = "buttonMove_Right";
|
||||||
buttonMove_Right.Size = new Size(40, 47);
|
buttonMove_Right.Size = new Size(35, 35);
|
||||||
buttonMove_Right.TabIndex = 0;
|
buttonMove_Right.TabIndex = 0;
|
||||||
buttonMove_Right.UseVisualStyleBackColor = true;
|
buttonMove_Right.UseVisualStyleBackColor = true;
|
||||||
buttonMove_Right.Click += ButtonMove_Click;
|
buttonMove_Right.Click += ButtonMove_Click;
|
||||||
@ -55,10 +55,9 @@
|
|||||||
buttonMove_Down.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
buttonMove_Down.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
buttonMove_Down.BackgroundImage = Properties.Resources.ArrowDown;
|
buttonMove_Down.BackgroundImage = Properties.Resources.ArrowDown;
|
||||||
buttonMove_Down.BackgroundImageLayout = ImageLayout.Stretch;
|
buttonMove_Down.BackgroundImageLayout = ImageLayout.Stretch;
|
||||||
buttonMove_Down.Location = new Point(829, 569);
|
buttonMove_Down.Location = new Point(725, 427);
|
||||||
buttonMove_Down.Margin = new Padding(3, 4, 3, 4);
|
|
||||||
buttonMove_Down.Name = "buttonMove_Down";
|
buttonMove_Down.Name = "buttonMove_Down";
|
||||||
buttonMove_Down.Size = new Size(40, 47);
|
buttonMove_Down.Size = new Size(35, 35);
|
||||||
buttonMove_Down.TabIndex = 1;
|
buttonMove_Down.TabIndex = 1;
|
||||||
buttonMove_Down.UseVisualStyleBackColor = true;
|
buttonMove_Down.UseVisualStyleBackColor = true;
|
||||||
buttonMove_Down.Click += ButtonMove_Click;
|
buttonMove_Down.Click += ButtonMove_Click;
|
||||||
@ -68,10 +67,9 @@
|
|||||||
buttonMove_Left.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
buttonMove_Left.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
buttonMove_Left.BackgroundImage = Properties.Resources.ArrowLeft;
|
buttonMove_Left.BackgroundImage = Properties.Resources.ArrowLeft;
|
||||||
buttonMove_Left.BackgroundImageLayout = ImageLayout.Stretch;
|
buttonMove_Left.BackgroundImageLayout = ImageLayout.Stretch;
|
||||||
buttonMove_Left.Location = new Point(782, 569);
|
buttonMove_Left.Location = new Point(684, 427);
|
||||||
buttonMove_Left.Margin = new Padding(3, 4, 3, 4);
|
|
||||||
buttonMove_Left.Name = "buttonMove_Left";
|
buttonMove_Left.Name = "buttonMove_Left";
|
||||||
buttonMove_Left.Size = new Size(40, 47);
|
buttonMove_Left.Size = new Size(35, 35);
|
||||||
buttonMove_Left.TabIndex = 2;
|
buttonMove_Left.TabIndex = 2;
|
||||||
buttonMove_Left.UseVisualStyleBackColor = true;
|
buttonMove_Left.UseVisualStyleBackColor = true;
|
||||||
buttonMove_Left.Click += ButtonMove_Click;
|
buttonMove_Left.Click += ButtonMove_Click;
|
||||||
@ -81,10 +79,9 @@
|
|||||||
buttonMove_Up.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
buttonMove_Up.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
buttonMove_Up.BackgroundImage = Properties.Resources.ArrowUp;
|
buttonMove_Up.BackgroundImage = Properties.Resources.ArrowUp;
|
||||||
buttonMove_Up.BackgroundImageLayout = ImageLayout.Stretch;
|
buttonMove_Up.BackgroundImageLayout = ImageLayout.Stretch;
|
||||||
buttonMove_Up.Location = new Point(829, 515);
|
buttonMove_Up.Location = new Point(725, 386);
|
||||||
buttonMove_Up.Margin = new Padding(3, 4, 3, 4);
|
|
||||||
buttonMove_Up.Name = "buttonMove_Up";
|
buttonMove_Up.Name = "buttonMove_Up";
|
||||||
buttonMove_Up.Size = new Size(40, 47);
|
buttonMove_Up.Size = new Size(35, 35);
|
||||||
buttonMove_Up.TabIndex = 3;
|
buttonMove_Up.TabIndex = 3;
|
||||||
buttonMove_Up.UseVisualStyleBackColor = true;
|
buttonMove_Up.UseVisualStyleBackColor = true;
|
||||||
buttonMove_Up.Click += ButtonMove_Click;
|
buttonMove_Up.Click += ButtonMove_Click;
|
||||||
@ -94,36 +91,45 @@
|
|||||||
pictureBoxMonorail.Dock = DockStyle.Fill;
|
pictureBoxMonorail.Dock = DockStyle.Fill;
|
||||||
pictureBoxMonorail.ImageLocation = "";
|
pictureBoxMonorail.ImageLocation = "";
|
||||||
pictureBoxMonorail.Location = new Point(0, 0);
|
pictureBoxMonorail.Location = new Point(0, 0);
|
||||||
pictureBoxMonorail.Margin = new Padding(3, 4, 3, 4);
|
|
||||||
pictureBoxMonorail.Name = "pictureBoxMonorail";
|
pictureBoxMonorail.Name = "pictureBoxMonorail";
|
||||||
pictureBoxMonorail.Size = new Size(929, 632);
|
pictureBoxMonorail.Size = new Size(813, 474);
|
||||||
pictureBoxMonorail.TabIndex = 4;
|
pictureBoxMonorail.TabIndex = 4;
|
||||||
pictureBoxMonorail.TabStop = false;
|
pictureBoxMonorail.TabStop = false;
|
||||||
//
|
//
|
||||||
|
// buttonCreateModernMonorail
|
||||||
|
//
|
||||||
|
buttonCreateModernMonorail.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
|
||||||
|
buttonCreateModernMonorail.Location = new Point(12, 439);
|
||||||
|
buttonCreateModernMonorail.Name = "buttonCreateModernMonorail";
|
||||||
|
buttonCreateModernMonorail.Size = new Size(220, 23);
|
||||||
|
buttonCreateModernMonorail.TabIndex = 5;
|
||||||
|
buttonCreateModernMonorail.Text = "Создать современный монорельс";
|
||||||
|
buttonCreateModernMonorail.UseVisualStyleBackColor = true;
|
||||||
|
buttonCreateModernMonorail.Click += ButtonCreateModernMonorail_Click;
|
||||||
|
//
|
||||||
// buttonCreateMonorail
|
// buttonCreateMonorail
|
||||||
//
|
//
|
||||||
buttonCreateMonorail.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
|
buttonCreateMonorail.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
|
||||||
buttonCreateMonorail.Location = new Point(14, 585);
|
buttonCreateMonorail.Location = new Point(238, 439);
|
||||||
buttonCreateMonorail.Margin = new Padding(3, 4, 3, 4);
|
|
||||||
buttonCreateMonorail.Name = "buttonCreateMonorail";
|
buttonCreateMonorail.Name = "buttonCreateMonorail";
|
||||||
buttonCreateMonorail.Size = new Size(86, 31);
|
buttonCreateMonorail.Size = new Size(194, 23);
|
||||||
buttonCreateMonorail.TabIndex = 5;
|
buttonCreateMonorail.TabIndex = 6;
|
||||||
buttonCreateMonorail.Text = "Создать";
|
buttonCreateMonorail.Text = "Создать монорельс";
|
||||||
buttonCreateMonorail.UseVisualStyleBackColor = true;
|
buttonCreateMonorail.UseVisualStyleBackColor = true;
|
||||||
buttonCreateMonorail.Click += ButtonCreateMonorail_Click;
|
buttonCreateMonorail.Click += buttonCreateMonorail_Click;
|
||||||
//
|
//
|
||||||
// FormMonorail
|
// FormMonorail
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
ClientSize = new Size(929, 632);
|
ClientSize = new Size(813, 474);
|
||||||
Controls.Add(buttonCreateMonorail);
|
Controls.Add(buttonCreateMonorail);
|
||||||
|
Controls.Add(buttonCreateModernMonorail);
|
||||||
Controls.Add(buttonMove_Up);
|
Controls.Add(buttonMove_Up);
|
||||||
Controls.Add(buttonMove_Left);
|
Controls.Add(buttonMove_Left);
|
||||||
Controls.Add(buttonMove_Down);
|
Controls.Add(buttonMove_Down);
|
||||||
Controls.Add(buttonMove_Right);
|
Controls.Add(buttonMove_Right);
|
||||||
Controls.Add(pictureBoxMonorail);
|
Controls.Add(pictureBoxMonorail);
|
||||||
Margin = new Padding(3, 4, 3, 4);
|
|
||||||
Name = "FormMonorail";
|
Name = "FormMonorail";
|
||||||
Text = "Монорельс";
|
Text = "Монорельс";
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBoxMonorail).EndInit();
|
((System.ComponentModel.ISupportInitialize)pictureBoxMonorail).EndInit();
|
||||||
@ -137,6 +143,7 @@
|
|||||||
private Button buttonMove_Left;
|
private Button buttonMove_Left;
|
||||||
private Button buttonMove_Up;
|
private Button buttonMove_Up;
|
||||||
private PictureBox pictureBoxMonorail;
|
private PictureBox pictureBoxMonorail;
|
||||||
|
private Button buttonCreateModernMonorail;
|
||||||
private Button buttonCreateMonorail;
|
private Button buttonCreateMonorail;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,10 +1,10 @@
|
|||||||
using ProjectMonorail.Scripts.Locomative;
|
using ProjectMonorail.Scripts.Monorail.Drawnings;
|
||||||
|
|
||||||
namespace ProjectMonorail
|
namespace ProjectMonorail
|
||||||
{
|
{
|
||||||
public partial class FormMonorail : Form
|
public partial class FormMonorail : Form
|
||||||
{
|
{
|
||||||
private DrawMonorail? _drawningMonorail;
|
private DrawingMonorail? _drawningMonorail;
|
||||||
|
|
||||||
public FormMonorail()
|
public FormMonorail()
|
||||||
{
|
{
|
||||||
@ -14,7 +14,7 @@ namespace ProjectMonorail
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Метод для прорисовки автомобиля
|
/// Метод для прорисовки автомобиля
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void Draw ()
|
private void Draw()
|
||||||
{
|
{
|
||||||
if (_drawningMonorail == null) return;
|
if (_drawningMonorail == null) return;
|
||||||
|
|
||||||
@ -24,26 +24,6 @@ namespace ProjectMonorail
|
|||||||
pictureBoxMonorail.Image = bmp;
|
pictureBoxMonorail.Image = bmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Обработка нажатия кнопки "Создать"
|
|
||||||
/// </summary>
|
|
||||||
private void ButtonCreateMonorail_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
Random random = new();
|
|
||||||
_drawningMonorail = new DrawMonorail();
|
|
||||||
|
|
||||||
_drawningMonorail.Initialization(random.Next(100, 300), random.Next(1000, 3000),
|
|
||||||
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
|
|
||||||
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
|
|
||||||
Convert.ToBoolean(random.Next(0, 2)),
|
|
||||||
Convert.ToBoolean(random.Next(0, 2)));
|
|
||||||
|
|
||||||
_drawningMonorail.SetPictureSize(pictureBoxMonorail.Width, pictureBoxMonorail.Height);
|
|
||||||
_drawningMonorail.SetPosition(random.Next(10, 100), random.Next(10, 100));
|
|
||||||
|
|
||||||
Draw();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Обработка кнопок перемешения
|
/// Обработка кнопок перемешения
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -53,23 +33,74 @@ namespace ProjectMonorail
|
|||||||
|
|
||||||
string name = ((Button)sender).Name ?? string.Empty;
|
string name = ((Button)sender).Name ?? string.Empty;
|
||||||
bool result = false;
|
bool result = false;
|
||||||
switch(name)
|
switch (name)
|
||||||
{
|
{
|
||||||
case "buttonMove_Up":
|
case "buttonMove_Up":
|
||||||
result = _drawningMonorail.MoveTransport(Scripts.DirectionType.Up);
|
result = _drawningMonorail.MoveTransport(DirectionType.Up);
|
||||||
break;
|
break;
|
||||||
case "buttonMove_Down":
|
case "buttonMove_Down":
|
||||||
result = _drawningMonorail.MoveTransport(Scripts.DirectionType.Down);
|
result = _drawningMonorail.MoveTransport(DirectionType.Down);
|
||||||
break;
|
break;
|
||||||
case "buttonMove_Right":
|
case "buttonMove_Right":
|
||||||
result = _drawningMonorail.MoveTransport(Scripts.DirectionType.Right);
|
result = _drawningMonorail.MoveTransport(DirectionType.Right);
|
||||||
break;
|
break;
|
||||||
case "buttonMove_Left":
|
case "buttonMove_Left":
|
||||||
result = _drawningMonorail.MoveTransport(Scripts.DirectionType.Left);
|
result = _drawningMonorail.MoveTransport(DirectionType.Left);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result) Draw();
|
if (result) Draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Создание объекта класса-перемещения
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="type">Тип создоваемого объекта</param>
|
||||||
|
private void CreateObject(string type)
|
||||||
|
{
|
||||||
|
Random random = new();
|
||||||
|
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case nameof(DrawingMonorail):
|
||||||
|
_drawningMonorail = new DrawingMonorail(random.Next(100, 300), random.Next(1000, 3000),
|
||||||
|
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)));
|
||||||
|
break;
|
||||||
|
case nameof(DrawingModernMonorail):
|
||||||
|
bool randomTrack = Convert.ToBoolean(random.Next(0, 2));
|
||||||
|
_drawningMonorail = new DrawingModernMonorail(random.Next(100, 300), random.Next(1000, 3000),
|
||||||
|
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
|
||||||
|
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
|
||||||
|
randomTrack,
|
||||||
|
(randomTrack? Convert.ToBoolean(random.Next(0, 2)) : true));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_drawningMonorail.SetPictureSize(pictureBoxMonorail.Width, pictureBoxMonorail.Height);
|
||||||
|
_drawningMonorail.SetPosition(random.Next(10, 100), random.Next(10, 100));
|
||||||
|
|
||||||
|
Draw();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Обработка нажатия кнопки "Создать современный монорельс"
|
||||||
|
/// </summary>
|
||||||
|
private void ButtonCreateModernMonorail_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
CreateObject(nameof(DrawingModernMonorail));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Обработка нажатия кнопки "Создать монорельс"
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void buttonCreateMonorail_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
CreateObject(nameof(DrawingMonorail));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace ProjectMonorail.Scripts
|
namespace ProjectMonorail.Scripts.Monorail.Drawnings
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Направление перемещения
|
/// Направление перемещения
|
@ -0,0 +1,137 @@
|
|||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
using ProjectMonorail.Scripts.Monorail.Entities;
|
||||||
|
|
||||||
|
namespace ProjectMonorail.Scripts.Monorail.Drawnings
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
|
||||||
|
/// </summary>
|
||||||
|
public class DrawingModernMonorail : DrawingMonorail
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Конструктор
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="speed">Скорость</param>
|
||||||
|
/// <param name="weight">Вес</param>
|
||||||
|
/// <param name="bodyColor">Основной цвет</param>
|
||||||
|
/// <param name="additionalColor">Дополнительный цвет</param>
|
||||||
|
/// <param name="monorailTrack">Признак наличия монорельсового пути</param>
|
||||||
|
/// <param name="cabin">Признак наличия кабиныы</param>
|
||||||
|
public DrawingModernMonorail(int speed, double weight, Color bodyColor, Color additionalColor, bool monorailTrack, bool cabin) : base((cabin ? 170 : 90), 40)
|
||||||
|
{
|
||||||
|
EntityMonorail = new EntityModernMonorail(speed, weight, bodyColor, additionalColor, monorailTrack, cabin);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Прорисовка объекта
|
||||||
|
/// </summary>
|
||||||
|
public override void DrawTransport(Graphics g)
|
||||||
|
{
|
||||||
|
if (EntityMonorail == null || EntityMonorail is not EntityModernMonorail entityModernMonorail || !_startPositionX.HasValue || !_startPositionY.HasValue) return;
|
||||||
|
|
||||||
|
Pen pen_Body = new Pen(EntityMonorail.BodyColor, 1.5f);
|
||||||
|
Pen pen_Additional = new Pen(entityModernMonorail.AdditionalColor, 1.5f);
|
||||||
|
|
||||||
|
Brush brush_Body = new SolidBrush(EntityMonorail.BodyColor);
|
||||||
|
Brush brush_Additional = new SolidBrush(entityModernMonorail.AdditionalColor);
|
||||||
|
|
||||||
|
|
||||||
|
base.DrawTransport(g);
|
||||||
|
|
||||||
|
//Перекраска окон первого монорельса
|
||||||
|
g.DrawRectangle(pen_Additional, _startPositionX.Value + 14, _startPositionY.Value + 2, 5, 6);
|
||||||
|
g.DrawRectangle(pen_Additional, _startPositionX.Value + 21, _startPositionY.Value + 2, 5, 6);
|
||||||
|
g.DrawRectangle(pen_Additional, _startPositionX.Value + 70, _startPositionY.Value + 2, 5, 6);
|
||||||
|
|
||||||
|
if (entityModernMonorail.MonorailTrack)
|
||||||
|
{
|
||||||
|
if (entityModernMonorail.Cabin)
|
||||||
|
{
|
||||||
|
g.FillRectangle(brush_Additional, _startPositionX.Value, _startPositionY.Value + 35, 170, 5);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g.FillRectangle(brush_Additional, _startPositionX.Value, _startPositionY.Value + 35, 86, 5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Колеса
|
||||||
|
Brush brush_White = new SolidBrush(Color.White);
|
||||||
|
g.FillEllipse(brush_White, _startPositionX.Value + 10, _startPositionY.Value + 30, 10, 10);
|
||||||
|
g.DrawEllipse(pen_Body, _startPositionX.Value + 10, _startPositionY.Value + 30, 10, 10);
|
||||||
|
|
||||||
|
g.FillEllipse(brush_White, _startPositionX.Value + 25, _startPositionY.Value + 30, 10, 10);
|
||||||
|
g.DrawEllipse(pen_Body, _startPositionX.Value + 25, _startPositionY.Value + 30, 10, 10);
|
||||||
|
|
||||||
|
g.FillEllipse(brush_White, _startPositionX.Value + 65, _startPositionY.Value + 30, 10, 10);
|
||||||
|
g.DrawEllipse(pen_Body, _startPositionX.Value + 65, _startPositionY.Value + 30, 10, 10);
|
||||||
|
|
||||||
|
g.FillEllipse(brush_White, _startPositionX.Value + 50, _startPositionY.Value + 30, 10, 10);
|
||||||
|
g.DrawEllipse(pen_Body, _startPositionX.Value + 50, _startPositionY.Value + 30, 10, 10);
|
||||||
|
|
||||||
|
|
||||||
|
if (entityModernMonorail.Cabin)
|
||||||
|
{
|
||||||
|
int offset = 170;
|
||||||
|
//Кузов монорельса
|
||||||
|
GraphicsPath pointsMonorailBody_RightBody = new GraphicsPath();
|
||||||
|
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 8 + offset, _startPositionY.Value + 10, _startPositionX.Value - 13 + offset, _startPositionY.Value);
|
||||||
|
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 13 + offset, _startPositionY.Value, _startPositionX.Value - 80 + offset, _startPositionY.Value);
|
||||||
|
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 80 + offset, _startPositionY.Value, _startPositionX.Value - 80 + offset, _startPositionY.Value + 25);
|
||||||
|
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 80 + offset, _startPositionY.Value + 25, _startPositionX.Value - 8 + offset, _startPositionY.Value + 25);
|
||||||
|
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 8 + offset, _startPositionY.Value + 25, _startPositionX.Value - 8 + offset, _startPositionY.Value + 10);
|
||||||
|
g.DrawLine(pen_Body, _startPositionX.Value - 8 + offset, _startPositionY.Value + 10, _startPositionX.Value - 30 + offset, _startPositionY.Value + 10);
|
||||||
|
g.DrawLine(pen_Body, _startPositionX.Value - 39 + offset, _startPositionY.Value + 10, _startPositionX.Value - 80 + offset, _startPositionY.Value + 10);
|
||||||
|
g.DrawPath(pen_Body, pointsMonorailBody_RightBody);
|
||||||
|
|
||||||
|
//Дверь
|
||||||
|
g.DrawRectangle(pen_Body, _startPositionX.Value - 39 + offset, _startPositionY.Value + 5, 9, 15);
|
||||||
|
|
||||||
|
//Окна
|
||||||
|
g.DrawRectangle(pen_Additional, _startPositionX.Value - 20 + offset, _startPositionY.Value + 2, 5, 6);
|
||||||
|
g.DrawRectangle(pen_Additional, _startPositionX.Value - 27 + offset, _startPositionY.Value + 2, 5, 6);
|
||||||
|
g.DrawRectangle(pen_Additional, _startPositionX.Value - 76 + offset, _startPositionY.Value + 2, 5, 6);
|
||||||
|
|
||||||
|
//Связка монорельса
|
||||||
|
g.FillRectangle(brush_Body, _startPositionX.Value - 87 + offset, _startPositionY.Value + 2, 7, 22);
|
||||||
|
|
||||||
|
//Нижняя часть монорельса
|
||||||
|
PointF[] pointsLowerPartMonorail_2_LeftSide = new PointF[8];
|
||||||
|
pointsLowerPartMonorail_2_LeftSide[0] = new PointF(_startPositionX.Value + offset, _startPositionY.Value + 30);
|
||||||
|
pointsLowerPartMonorail_2_LeftSide[1] = new PointF(_startPositionX.Value - 8 + offset, _startPositionY.Value + 25);
|
||||||
|
pointsLowerPartMonorail_2_LeftSide[2] = new PointF(_startPositionX.Value - 72 + offset, _startPositionY.Value + 25);
|
||||||
|
pointsLowerPartMonorail_2_LeftSide[3] = new PointF(_startPositionX.Value - 36 + offset, _startPositionY.Value + 25);
|
||||||
|
pointsLowerPartMonorail_2_LeftSide[4] = new PointF(_startPositionX.Value - 36 + offset, _startPositionY.Value + 32);
|
||||||
|
pointsLowerPartMonorail_2_LeftSide[5] = new PointF(_startPositionX.Value - 15 + offset, _startPositionY.Value + 32);
|
||||||
|
pointsLowerPartMonorail_2_LeftSide[6] = new PointF(_startPositionX.Value - 15 + offset, _startPositionY.Value + 35);
|
||||||
|
pointsLowerPartMonorail_2_LeftSide[7] = new PointF(_startPositionX.Value + offset, _startPositionY.Value + 32);
|
||||||
|
g.FillPolygon(brush_Body, pointsLowerPartMonorail_2_LeftSide);
|
||||||
|
|
||||||
|
PointF[] pointsLowerPartMonorail_2_RightSide = new PointF[7];
|
||||||
|
pointsLowerPartMonorail_2_RightSide[0] = new PointF(_startPositionX.Value - 86 + offset, _startPositionY.Value + 30);
|
||||||
|
pointsLowerPartMonorail_2_RightSide[1] = new PointF(_startPositionX.Value - 80 + offset, _startPositionY.Value + 25);
|
||||||
|
pointsLowerPartMonorail_2_RightSide[2] = new PointF(_startPositionX.Value - 50 + offset, _startPositionY.Value + 25);
|
||||||
|
pointsLowerPartMonorail_2_RightSide[3] = new PointF(_startPositionX.Value - 50 + offset, _startPositionY.Value + 32);
|
||||||
|
pointsLowerPartMonorail_2_RightSide[4] = new PointF(_startPositionX.Value - 69 + offset, _startPositionY.Value + 32);
|
||||||
|
pointsLowerPartMonorail_2_RightSide[5] = new PointF(_startPositionX.Value - 79 + offset, _startPositionY.Value + 35);
|
||||||
|
pointsLowerPartMonorail_2_RightSide[6] = new PointF(_startPositionX.Value - 86 + offset, _startPositionY.Value + 32);
|
||||||
|
g.FillPolygon(brush_Body, pointsLowerPartMonorail_2_RightSide);
|
||||||
|
g.FillRectangle(brush_Body, _startPositionX.Value - 80 + offset, _startPositionY.Value + 25, 70, 3);
|
||||||
|
|
||||||
|
|
||||||
|
//Колеса
|
||||||
|
g.FillEllipse(brush_White, _startPositionX.Value - 20 + offset, _startPositionY.Value + 30, 10, 10);
|
||||||
|
g.DrawEllipse(pen_Body, _startPositionX.Value - 20 + offset, _startPositionY.Value + 30, 10, 10);
|
||||||
|
|
||||||
|
g.FillEllipse(brush_White, _startPositionX.Value - 35 + offset, _startPositionY.Value + 30, 10, 10);
|
||||||
|
g.DrawEllipse(pen_Body, _startPositionX.Value - 35 + offset, _startPositionY.Value + 30, 10, 10);
|
||||||
|
|
||||||
|
g.FillEllipse(brush_White, _startPositionX.Value - 75 + offset, _startPositionY.Value + 30, 10, 10);
|
||||||
|
g.DrawEllipse(pen_Body, _startPositionX.Value - 75 + offset, _startPositionY.Value + 30, 10, 10);
|
||||||
|
|
||||||
|
g.FillEllipse(brush_White, _startPositionX.Value - 60 + offset, _startPositionY.Value + 30, 10, 10);
|
||||||
|
g.DrawEllipse(pen_Body, _startPositionX.Value - 60 + offset, _startPositionY.Value + 30, 10, 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,13 +1,17 @@
|
|||||||
using System.Drawing.Drawing2D;
|
using ProjectMonorail.Scripts.Monorail.Entities;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
|
||||||
namespace ProjectMonorail.Scripts.Locomative
|
namespace ProjectMonorail.Scripts.Monorail.Drawnings
|
||||||
{
|
{
|
||||||
public class DrawMonorail
|
/// <summary>
|
||||||
|
/// Класс, отвечающий за прорисовку и перемещение базового объекта-сущности
|
||||||
|
/// </summary>
|
||||||
|
public class DrawingMonorail
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс-сущность
|
/// Класс-сущность
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public EntityMonorail? EntityMonorail { get; private set; }
|
public EntityMonorail? EntityMonorail { get; protected set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ширина окна
|
/// Ширина окна
|
||||||
@ -20,45 +24,55 @@ namespace ProjectMonorail.Scripts.Locomative
|
|||||||
private int? _pictureHeight;
|
private int? _pictureHeight;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Левая координата прорисовки автомобиля
|
/// Левая координата прорисовки монорельса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private int? _startPositionX;
|
protected int? _startPositionX;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Верхняя кооридната прорисовки автомобиля
|
/// Верхняя кооридната прорисовки монорельса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private int? _startPositionY;
|
protected int? _startPositionY;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ширина прорисовки автомобиля
|
/// Ширина прорисовки монорельса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private int _drawningMonorailWidth = 110;
|
private readonly int _drawningMonorailWidth = 90;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Высота прорисовки автомобиля
|
/// Высота прорисовки монорельса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly int _drawningMonorailHeight = 40;
|
private readonly int _drawningMonorailHeight = 40;
|
||||||
|
|
||||||
/// <summary>
|
private DrawingMonorail()
|
||||||
/// Инициализация свойств
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="speed">Скорость</param>
|
|
||||||
/// <param name="weight">Вес</param>
|
|
||||||
/// <param name="bodyColor">Основной цвет</param>
|
|
||||||
/// <param name="additionalColor">Дополнительный цвет</param>
|
|
||||||
/// <param name="monorailTrack">Признак наличия монорельсового пути</param>
|
|
||||||
/// <param name="cabin">Признак наличия кабиныы</param>
|
|
||||||
public void Initialization(int speed, double weight, Color bodyColor, Color additionalColor, bool monorailTrack, bool cabin)
|
|
||||||
{
|
{
|
||||||
EntityMonorail = new EntityMonorail();
|
|
||||||
EntityMonorail.Initialization(speed, weight, bodyColor, additionalColor, monorailTrack, cabin);
|
|
||||||
_drawningMonorailWidth = cabin ? 170 : 90;
|
|
||||||
_pictureWidth = null;
|
_pictureWidth = null;
|
||||||
_pictureHeight = null;
|
_pictureHeight = null;
|
||||||
_startPositionX = null;
|
_startPositionX = null;
|
||||||
_startPositionY = null;
|
_startPositionY = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Конструктор
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="speed">Скорость</param>
|
||||||
|
/// <param name="weight">Вес</param>
|
||||||
|
/// <param name="bodyColor">Основной цвет</param>
|
||||||
|
public DrawingMonorail(int speed, double weight, Color bodyColor) : this()
|
||||||
|
{
|
||||||
|
EntityMonorail = new EntityMonorail(speed, weight, bodyColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Конструктор для наследников
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="drawningMonorailWidth">Ширина прорисовки монорельса</param>
|
||||||
|
/// <param name="drawningMonorailHeight">Высота прорисовки монорельса</param>
|
||||||
|
protected DrawingMonorail(int drawningMonorailWidth, int drawningMonorailHeight) : this()
|
||||||
|
{
|
||||||
|
_drawningMonorailWidth = drawningMonorailWidth;
|
||||||
|
_drawningMonorailHeight = drawningMonorailHeight;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Установка границ поля
|
/// Установка границ поля
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -69,7 +83,7 @@ namespace ProjectMonorail.Scripts.Locomative
|
|||||||
{
|
{
|
||||||
// TODO проверка, что объект "влезает" в размеры поля
|
// TODO проверка, что объект "влезает" в размеры поля
|
||||||
// если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена
|
// если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена
|
||||||
if (_drawningMonorailWidth > width || _drawningMonorailHeight > height) return false;
|
if (_drawningMonorailWidth > width || _drawningMonorailHeight > height) return false;
|
||||||
|
|
||||||
if (_startPositionX.HasValue && _startPositionY.HasValue)
|
if (_startPositionX.HasValue && _startPositionY.HasValue)
|
||||||
{
|
{
|
||||||
@ -164,15 +178,13 @@ namespace ProjectMonorail.Scripts.Locomative
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Прорисовка объекта
|
/// Прорисовка объекта
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void DrawTransport(Graphics g)
|
public virtual void DrawTransport(Graphics g)
|
||||||
{
|
{
|
||||||
if (EntityMonorail == null || !_startPositionX.HasValue || !_startPositionY.HasValue) return;
|
if (EntityMonorail == null || !_startPositionX.HasValue || !_startPositionY.HasValue) return;
|
||||||
|
|
||||||
Pen pen_Body = new Pen(EntityMonorail.BodyColor, 1.5f);
|
Pen pen_Body = new Pen(EntityMonorail.BodyColor, 1.5f);
|
||||||
Pen pen_Additional = new Pen(EntityMonorail.AdditionalColor, 1.5f);
|
|
||||||
|
|
||||||
Brush brush_Body = new SolidBrush(EntityMonorail.BodyColor);
|
Brush brush_Body = new SolidBrush(EntityMonorail.BodyColor);
|
||||||
Brush brush_Additional = new SolidBrush(EntityMonorail.AdditionalColor);
|
|
||||||
|
|
||||||
|
|
||||||
//Кузов монорельса
|
//Кузов монорельса
|
||||||
@ -190,9 +202,9 @@ namespace ProjectMonorail.Scripts.Locomative
|
|||||||
g.DrawRectangle(pen_Body, _startPositionX.Value + 30, _startPositionY.Value + 5, 9, 15);
|
g.DrawRectangle(pen_Body, _startPositionX.Value + 30, _startPositionY.Value + 5, 9, 15);
|
||||||
|
|
||||||
//Окна
|
//Окна
|
||||||
g.DrawRectangle(pen_Additional, _startPositionX.Value + 14, _startPositionY.Value + 2, 5, 6);
|
g.DrawRectangle(pen_Body, _startPositionX.Value + 14, _startPositionY.Value + 2, 5, 6);
|
||||||
g.DrawRectangle(pen_Additional, _startPositionX.Value + 21, _startPositionY.Value + 2, 5, 6);
|
g.DrawRectangle(pen_Body, _startPositionX.Value + 21, _startPositionY.Value + 2, 5, 6);
|
||||||
g.DrawRectangle(pen_Additional, _startPositionX.Value + 70, _startPositionY.Value + 2, 5, 6);
|
g.DrawRectangle(pen_Body, _startPositionX.Value + 70, _startPositionY.Value + 2, 5, 6);
|
||||||
|
|
||||||
//Связка монорельса
|
//Связка монорельса
|
||||||
g.FillRectangle(brush_Body, _startPositionX.Value + 80, _startPositionY.Value + 2, 7, 22);
|
g.FillRectangle(brush_Body, _startPositionX.Value + 80, _startPositionY.Value + 2, 7, 22);
|
||||||
@ -220,18 +232,6 @@ namespace ProjectMonorail.Scripts.Locomative
|
|||||||
g.FillPolygon(brush_Body, pointsLowerPartMonorail_RightSide);
|
g.FillPolygon(brush_Body, pointsLowerPartMonorail_RightSide);
|
||||||
g.FillRectangle(brush_Body, _startPositionX.Value + 8, _startPositionY.Value + 25, 70, 3);
|
g.FillRectangle(brush_Body, _startPositionX.Value + 8, _startPositionY.Value + 25, 70, 3);
|
||||||
|
|
||||||
if (EntityMonorail.MonorailTrack)
|
|
||||||
{
|
|
||||||
if (EntityMonorail.Cabin)
|
|
||||||
{
|
|
||||||
g.FillRectangle(brush_Additional, _startPositionX.Value, _startPositionY.Value + 35, 170, 5);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g.FillRectangle(brush_Additional, _startPositionX.Value, _startPositionY.Value + 35, 86, 5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Колеса
|
//Колеса
|
||||||
Brush brush_White = new SolidBrush(Color.White);
|
Brush brush_White = new SolidBrush(Color.White);
|
||||||
g.FillEllipse(brush_White, _startPositionX.Value + 10, _startPositionY.Value + 30, 10, 10);
|
g.FillEllipse(brush_White, _startPositionX.Value + 10, _startPositionY.Value + 30, 10, 10);
|
||||||
@ -245,70 +245,6 @@ namespace ProjectMonorail.Scripts.Locomative
|
|||||||
|
|
||||||
g.FillEllipse(brush_White, _startPositionX.Value + 50, _startPositionY.Value + 30, 10, 10);
|
g.FillEllipse(brush_White, _startPositionX.Value + 50, _startPositionY.Value + 30, 10, 10);
|
||||||
g.DrawEllipse(pen_Body, _startPositionX.Value + 50, _startPositionY.Value + 30, 10, 10);
|
g.DrawEllipse(pen_Body, _startPositionX.Value + 50, _startPositionY.Value + 30, 10, 10);
|
||||||
|
|
||||||
|
|
||||||
if (EntityMonorail.Cabin)
|
|
||||||
{
|
|
||||||
int offset = 170;
|
|
||||||
//Кузов монорельса
|
|
||||||
GraphicsPath pointsMonorailBody_RightBody = new GraphicsPath();
|
|
||||||
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 8 + offset, _startPositionY.Value + 10, _startPositionX.Value - 13 + offset, _startPositionY.Value);
|
|
||||||
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 13 + offset, _startPositionY.Value, _startPositionX.Value - 80 + offset, _startPositionY.Value);
|
|
||||||
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 80 + offset, _startPositionY.Value, _startPositionX.Value - 80 + offset, _startPositionY.Value + 25);
|
|
||||||
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 80 + offset, _startPositionY.Value + 25, _startPositionX.Value - 8 + offset, _startPositionY.Value + 25);
|
|
||||||
pointsMonorailBody_RightBody.AddLine(_startPositionX.Value - 8 + offset, _startPositionY.Value + 25, _startPositionX.Value - 8 + offset, _startPositionY.Value + 10);
|
|
||||||
g.DrawLine(pen_Body, _startPositionX.Value - 8 + offset, _startPositionY.Value + 10, _startPositionX.Value - 30 + offset, _startPositionY.Value + 10);
|
|
||||||
g.DrawLine(pen_Body, _startPositionX.Value - 39 + offset, _startPositionY.Value + 10, _startPositionX.Value - 80 + offset, _startPositionY.Value + 10);
|
|
||||||
g.DrawPath(pen_Body, pointsMonorailBody_RightBody);
|
|
||||||
|
|
||||||
//Дверь
|
|
||||||
g.DrawRectangle(pen_Body, _startPositionX.Value - 39 + offset, _startPositionY.Value + 5, 9, 15);
|
|
||||||
|
|
||||||
//Окна
|
|
||||||
g.DrawRectangle(pen_Additional, _startPositionX.Value - 20 + offset, _startPositionY.Value + 2, 5, 6);
|
|
||||||
g.DrawRectangle(pen_Additional, _startPositionX.Value - 27 + offset, _startPositionY.Value + 2, 5, 6);
|
|
||||||
g.DrawRectangle(pen_Additional, _startPositionX.Value - 76 + offset, _startPositionY.Value + 2, 5, 6);
|
|
||||||
|
|
||||||
//Связка монорельса
|
|
||||||
g.FillRectangle(brush_Body, _startPositionX.Value - 87 + offset, _startPositionY.Value + 2, 7, 22);
|
|
||||||
|
|
||||||
//Нижняя часть монорельса
|
|
||||||
PointF[] pointsLowerPartMonorail_2_LeftSide = new PointF[8];
|
|
||||||
pointsLowerPartMonorail_2_LeftSide[0] = new PointF(_startPositionX.Value + offset, _startPositionY.Value + 30);
|
|
||||||
pointsLowerPartMonorail_2_LeftSide[1] = new PointF(_startPositionX.Value - 8 + offset, _startPositionY.Value + 25);
|
|
||||||
pointsLowerPartMonorail_2_LeftSide[2] = new PointF(_startPositionX.Value - 72 + offset, _startPositionY.Value + 25);
|
|
||||||
pointsLowerPartMonorail_2_LeftSide[3] = new PointF(_startPositionX.Value - 36 + offset, _startPositionY.Value + 25);
|
|
||||||
pointsLowerPartMonorail_2_LeftSide[4] = new PointF(_startPositionX.Value - 36 + offset, _startPositionY.Value + 32);
|
|
||||||
pointsLowerPartMonorail_2_LeftSide[5] = new PointF(_startPositionX.Value - 15 + offset, _startPositionY.Value + 32);
|
|
||||||
pointsLowerPartMonorail_2_LeftSide[6] = new PointF(_startPositionX.Value - 15 + offset, _startPositionY.Value + 35);
|
|
||||||
pointsLowerPartMonorail_2_LeftSide[7] = new PointF(_startPositionX.Value + offset, _startPositionY.Value + 32);
|
|
||||||
g.FillPolygon(brush_Body, pointsLowerPartMonorail_2_LeftSide);
|
|
||||||
|
|
||||||
PointF[] pointsLowerPartMonorail_2_RightSide = new PointF[7];
|
|
||||||
pointsLowerPartMonorail_2_RightSide[0] = new PointF(_startPositionX.Value - 86 + offset, _startPositionY.Value + 30);
|
|
||||||
pointsLowerPartMonorail_2_RightSide[1] = new PointF(_startPositionX.Value - 80 + offset, _startPositionY.Value + 25);
|
|
||||||
pointsLowerPartMonorail_2_RightSide[2] = new PointF(_startPositionX.Value - 50 + offset, _startPositionY.Value + 25);
|
|
||||||
pointsLowerPartMonorail_2_RightSide[3] = new PointF(_startPositionX.Value - 50 + offset, _startPositionY.Value + 32);
|
|
||||||
pointsLowerPartMonorail_2_RightSide[4] = new PointF(_startPositionX.Value - 69 + offset, _startPositionY.Value + 32);
|
|
||||||
pointsLowerPartMonorail_2_RightSide[5] = new PointF(_startPositionX.Value - 79 + offset, _startPositionY.Value + 35);
|
|
||||||
pointsLowerPartMonorail_2_RightSide[6] = new PointF(_startPositionX.Value - 86 + offset, _startPositionY.Value + 32);
|
|
||||||
g.FillPolygon(brush_Body, pointsLowerPartMonorail_2_RightSide);
|
|
||||||
g.FillRectangle(brush_Body, _startPositionX.Value - 80 + offset, _startPositionY.Value + 25, 70, 3);
|
|
||||||
|
|
||||||
|
|
||||||
//Колеса
|
|
||||||
g.FillEllipse(brush_White, _startPositionX.Value - 20 + offset, _startPositionY.Value + 30, 10, 10);
|
|
||||||
g.DrawEllipse(pen_Body, _startPositionX.Value - 20 + offset, _startPositionY.Value + 30, 10, 10);
|
|
||||||
|
|
||||||
g.FillEllipse(brush_White, _startPositionX.Value - 35 + offset, _startPositionY.Value + 30, 10, 10);
|
|
||||||
g.DrawEllipse(pen_Body, _startPositionX.Value - 35 + offset, _startPositionY.Value + 30, 10, 10);
|
|
||||||
|
|
||||||
g.FillEllipse(brush_White, _startPositionX.Value - 75 + offset, _startPositionY.Value + 30, 10, 10);
|
|
||||||
g.DrawEllipse(pen_Body, _startPositionX.Value - 75 + offset, _startPositionY.Value + 30, 10, 10);
|
|
||||||
|
|
||||||
g.FillEllipse(brush_White, _startPositionX.Value - 60 + offset, _startPositionY.Value + 30, 10, 10);
|
|
||||||
g.DrawEllipse(pen_Body, _startPositionX.Value - 60 + offset, _startPositionY.Value + 30, 10, 10);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,22 +1,10 @@
|
|||||||
namespace ProjectMonorail
|
namespace ProjectMonorail.Scripts.Monorail.Entities
|
||||||
{
|
{
|
||||||
public class EntityMonorail
|
/// <summary>
|
||||||
|
/// Класс-сущности "Современный монорельс"
|
||||||
|
/// </summary>
|
||||||
|
public class EntityModernMonorail : EntityMonorail
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Скорость
|
|
||||||
/// </summary>
|
|
||||||
public int Speed { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Вес
|
|
||||||
/// </summary>
|
|
||||||
public double Weight { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Основной цвет
|
|
||||||
/// </summary>
|
|
||||||
public Color BodyColor { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дополнительный цвет (для опциональных элементов)
|
/// Дополнительный цвет (для опциональных элементов)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -32,11 +20,6 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Cabin { get; private set; }
|
public bool Cabin { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Шаг перемещения автомобиля
|
|
||||||
/// </summary>
|
|
||||||
public double Step => Speed * 100 / Weight;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Инициальзация полей объекта-класса спортивного автомобиля
|
/// Инициальзация полей объекта-класса спортивного автомобиля
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -46,11 +29,8 @@
|
|||||||
/// <param name="additionalColor">Дополнительный цвет</param>
|
/// <param name="additionalColor">Дополнительный цвет</param>
|
||||||
/// <param name="monorailTrack">Признак наличия монорельсового пути</param>
|
/// <param name="monorailTrack">Признак наличия монорельсового пути</param>
|
||||||
/// <param name="cabin">Признак наличия кабины</param>
|
/// <param name="cabin">Признак наличия кабины</param>
|
||||||
public void Initialization(int speed, double weight, Color bodyColor, Color additionalColor, bool monorailTrack, bool cabin)
|
public EntityModernMonorail(int speed, double weight, Color bodyColor, Color additionalColor, bool monorailTrack, bool cabin) : base(speed, weight, bodyColor)
|
||||||
{
|
{
|
||||||
Speed = speed;
|
|
||||||
Weight = weight;
|
|
||||||
BodyColor = bodyColor;
|
|
||||||
AdditionalColor = additionalColor;
|
AdditionalColor = additionalColor;
|
||||||
MonorailTrack = monorailTrack;
|
MonorailTrack = monorailTrack;
|
||||||
Cabin = cabin;
|
Cabin = cabin;
|
41
ProjectSportCar/Scripts/Monorail/Entities/EntityMonorail.cs
Normal file
41
ProjectSportCar/Scripts/Monorail/Entities/EntityMonorail.cs
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
namespace ProjectMonorail.Scripts.Monorail.Entities
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Класс-сущности "Монорельс"
|
||||||
|
/// </summary>
|
||||||
|
public class EntityMonorail
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Скорость
|
||||||
|
/// </summary>
|
||||||
|
public int Speed { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Вес
|
||||||
|
/// </summary>
|
||||||
|
public double Weight { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Основной цвет
|
||||||
|
/// </summary>
|
||||||
|
public Color BodyColor { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Шаг перемещения автомобиля
|
||||||
|
/// </summary>
|
||||||
|
public double Step => Speed * 100 / Weight;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Конструктор сущности
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="speed">Скорость</param>
|
||||||
|
/// <param name="weight">Вес автомобиля</param>
|
||||||
|
/// <param name="bodyColor">Основной цвет</param>
|
||||||
|
public EntityMonorail(int speed, double weight, Color bodyColor)
|
||||||
|
{
|
||||||
|
Speed = speed;
|
||||||
|
Weight = weight;
|
||||||
|
BodyColor = bodyColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user