Добавлена отрисовка иллюминаторов
This commit is contained in:
parent
578c521364
commit
d72ac4a556
15
AirplaneWithRadar/AirplaneWithRadar/CountPortholes.cs
Normal file
15
AirplaneWithRadar/AirplaneWithRadar/CountPortholes.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AirplaneWithRadar
|
||||||
|
{
|
||||||
|
internal enum CountPortholes
|
||||||
|
{
|
||||||
|
Ten = 10,
|
||||||
|
Twetwenty = 20,
|
||||||
|
Thirty = 30,
|
||||||
|
}
|
||||||
|
}
|
@ -10,6 +10,7 @@ namespace AirplaneWithRadar
|
|||||||
/// Класс-сущность
|
/// Класс-сущность
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public EntityAirplane Airplane { private set; get; }
|
public EntityAirplane Airplane { private set; get; }
|
||||||
|
public DrawningAirplanePortholes DrawningPortholes { get; private set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Левая координата отрисовки самолёта
|
/// Левая координата отрисовки самолёта
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -44,6 +45,8 @@ namespace AirplaneWithRadar
|
|||||||
{
|
{
|
||||||
Airplane = new EntityAirplane();
|
Airplane = new EntityAirplane();
|
||||||
Airplane.Init(speed, weight, bodyColor);
|
Airplane.Init(speed, weight, bodyColor);
|
||||||
|
DrawningPortholes = new();
|
||||||
|
DrawningPortholes.CountPortholes = 30;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Установка позиции
|
/// Установка позиции
|
||||||
@ -141,8 +144,8 @@ namespace AirplaneWithRadar
|
|||||||
g.FillPolygon(brush, point);
|
g.FillPolygon(brush, point);
|
||||||
|
|
||||||
//крылья
|
//крылья
|
||||||
g.DrawLine(pen, _startPosX + 20, _startPosY + h - 3, _startPosX + 60, _startPosY + h - 3);
|
g.DrawLine(pen, _startPosX + 20, _startPosY + h , _startPosX + 60, _startPosY + h );
|
||||||
g.DrawLine(pen, _startPosX + 20, _startPosY + h - 2, _startPosX + 60, _startPosY + h - 2);
|
g.DrawLine(pen, _startPosX + 20, _startPosY + h +1 , _startPosX + 60, _startPosY + h +1);
|
||||||
|
|
||||||
g.DrawLine(pen, _startPosX - 1, _startPosY + h / 3, _startPosX + 15, _startPosY + h / 3);
|
g.DrawLine(pen, _startPosX - 1, _startPosY + h / 3, _startPosX + 15, _startPosY + h / 3);
|
||||||
g.DrawLine(pen, _startPosX - 1, _startPosY + h / 3 + 1, _startPosX + 15, _startPosY + h / 3 + 1);
|
g.DrawLine(pen, _startPosX - 1, _startPosY + h / 3 + 1, _startPosX + 15, _startPosY + h / 3 + 1);
|
||||||
@ -152,7 +155,9 @@ namespace AirplaneWithRadar
|
|||||||
g.DrawRectangle(pen, _startPosX + 20, _startPosY + h + (h / 3), 2, 2);
|
g.DrawRectangle(pen, _startPosX + 20, _startPosY + h + (h / 3), 2, 2);
|
||||||
g.DrawRectangle(pen, _startPosX + 24, _startPosY + h + (h / 3), 2, 2);
|
g.DrawRectangle(pen, _startPosX + 24, _startPosY + h + (h / 3), 2, 2);
|
||||||
g.DrawRectangle(pen, _startPosX + _airplaneWidth - 20, _startPosY + h + (h / 3), 2, 2);
|
g.DrawRectangle(pen, _startPosX + _airplaneWidth - 20, _startPosY + h + (h / 3), 2, 2);
|
||||||
|
DrawningPortholes.DrawPortholes(g, (int)_startPosX+5, (int)_startPosY+5, (int)_airplaneWidth);
|
||||||
_startPosY -= 4;
|
_startPosY -= 4;
|
||||||
|
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Смена границ формы отрисовки
|
/// Смена границ формы отрисовки
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AirplaneWithRadar
|
||||||
|
{
|
||||||
|
internal class DrawningAirplanePortholes
|
||||||
|
{
|
||||||
|
private CountPortholes _countPortholes;
|
||||||
|
|
||||||
|
public int CountPortholes
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (int)_countPortholes;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_countPortholes = (CountPortholes)(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DrawPortholes(Graphics g, int _startPosX, int _startPosY, int _airplaneWidth)
|
||||||
|
{
|
||||||
|
int middle = _startPosX + ((_airplaneWidth - 25) / 2);
|
||||||
|
DrawPorthole(g, middle, _startPosY);
|
||||||
|
int left = middle - 5;
|
||||||
|
int right = middle + 5;
|
||||||
|
for (var i = 1; i <= CountPortholes / 4; i += 1)
|
||||||
|
{
|
||||||
|
DrawPorthole(g, left, _startPosY);
|
||||||
|
left -= 5;
|
||||||
|
DrawPorthole(g, right, _startPosY);
|
||||||
|
right += 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawPorthole(Graphics g, int _startPosX, int _startPosY)
|
||||||
|
{
|
||||||
|
Pen pen = new(Color.Black);
|
||||||
|
g.DrawRectangle(pen, _startPosX, _startPosY, 2, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -38,6 +38,8 @@
|
|||||||
this.buttonLeft = new System.Windows.Forms.Button();
|
this.buttonLeft = new System.Windows.Forms.Button();
|
||||||
this.buttonDown = new System.Windows.Forms.Button();
|
this.buttonDown = new System.Windows.Forms.Button();
|
||||||
this.buttonRight = new System.Windows.Forms.Button();
|
this.buttonRight = new System.Windows.Forms.Button();
|
||||||
|
this.labelPortholes = new System.Windows.Forms.Label();
|
||||||
|
this.comboBoxPortholes = new System.Windows.Forms.ComboBox();
|
||||||
this.statusStrip1.SuspendLayout();
|
this.statusStrip1.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxAirplane)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.pictureBoxAirplane)).BeginInit();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
@ -142,11 +144,34 @@
|
|||||||
this.buttonRight.UseVisualStyleBackColor = true;
|
this.buttonRight.UseVisualStyleBackColor = true;
|
||||||
this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click);
|
this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click);
|
||||||
//
|
//
|
||||||
|
// labelPortholes
|
||||||
|
//
|
||||||
|
this.labelPortholes.AutoSize = true;
|
||||||
|
this.labelPortholes.Location = new System.Drawing.Point(12, 374);
|
||||||
|
this.labelPortholes.Name = "labelPortholes";
|
||||||
|
this.labelPortholes.Size = new System.Drawing.Size(177, 15);
|
||||||
|
this.labelPortholes.TabIndex = 7;
|
||||||
|
this.labelPortholes.Text = "Колличество иллюминаторов:";
|
||||||
|
//
|
||||||
|
// comboBoxPortholes
|
||||||
|
//
|
||||||
|
this.comboBoxPortholes.FormattingEnabled = true;
|
||||||
|
this.comboBoxPortholes.Items.AddRange(new object[] {
|
||||||
|
"10",
|
||||||
|
"20",
|
||||||
|
"30"});
|
||||||
|
this.comboBoxPortholes.Location = new System.Drawing.Point(195, 371);
|
||||||
|
this.comboBoxPortholes.Name = "comboBoxPortholes";
|
||||||
|
this.comboBoxPortholes.Size = new System.Drawing.Size(44, 23);
|
||||||
|
this.comboBoxPortholes.TabIndex = 8;
|
||||||
|
//
|
||||||
// FormAirplane
|
// FormAirplane
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||||
|
this.Controls.Add(this.comboBoxPortholes);
|
||||||
|
this.Controls.Add(this.labelPortholes);
|
||||||
this.Controls.Add(this.buttonRight);
|
this.Controls.Add(this.buttonRight);
|
||||||
this.Controls.Add(this.buttonDown);
|
this.Controls.Add(this.buttonDown);
|
||||||
this.Controls.Add(this.buttonLeft);
|
this.Controls.Add(this.buttonLeft);
|
||||||
@ -176,5 +201,7 @@
|
|||||||
private Button buttonLeft;
|
private Button buttonLeft;
|
||||||
private Button buttonDown;
|
private Button buttonDown;
|
||||||
private Button buttonRight;
|
private Button buttonRight;
|
||||||
|
private Label labelPortholes;
|
||||||
|
private ComboBox comboBoxPortholes;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -32,6 +32,7 @@ namespace AirplaneWithRadar
|
|||||||
Random rnd = new();
|
Random rnd = new();
|
||||||
_airplane = new DrawningAirplane();
|
_airplane = new DrawningAirplane();
|
||||||
_airplane.Init(rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)));
|
_airplane.Init(rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)));
|
||||||
|
_airplane.DrawningPortholes.CountPortholes = Convert.ToInt32(comboBoxPortholes.Text);
|
||||||
_airplane.SetPosition(rnd.Next(20, 100), rnd.Next(20, 100), pictureBoxAirplane.Width, pictureBoxAirplane.Height);
|
_airplane.SetPosition(rnd.Next(20, 100), rnd.Next(20, 100), pictureBoxAirplane.Width, pictureBoxAirplane.Height);
|
||||||
toolStripStatusLabelSpeed.Text = $"Ñêîðîñòü: {_airplane.Airplane.Speed}";
|
toolStripStatusLabelSpeed.Text = $"Ñêîðîñòü: {_airplane.Airplane.Speed}";
|
||||||
toolStripStatusLabelWeight.Text = $"Âåñ: {_airplane.Airplane.Weight}";
|
toolStripStatusLabelWeight.Text = $"Âåñ: {_airplane.Airplane.Weight}";
|
||||||
|
Loading…
Reference in New Issue
Block a user