Лабораторная работа №1 (усложнённая)

This commit is contained in:
Pyro 2024-02-18 18:11:24 +04:00
parent 33f58a2310
commit 1f0eb7baa5
3 changed files with 56 additions and 18 deletions

View File

@ -13,6 +13,11 @@ public class DrawingMotorBoat
/// </summary> /// </summary>
public EntityMotorBoat? EntityMotorBoat { get; private set; } public EntityMotorBoat? EntityMotorBoat { get; private set; }
/// <summary>
/// Класс-сущность
/// </summary>
public EntityPaddle? EntityPaddle { get; private set; }
/// <summary> /// <summary>
/// Ширина окна /// Ширина окна
/// </summary> /// </summary>
@ -54,10 +59,12 @@ public class DrawingMotorBoat
/// <param name="inboardEngine"></param> /// <param name="inboardEngine"></param>
/// <param name="paddle"></param> /// <param name="paddle"></param>
/// <param name="protectiveGlass"></param> /// <param name="protectiveGlass"></param>
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool inboardEngine, bool paddle, bool protectiveGlass) public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool inboardEngine, bool protectiveGlass, int paddle)
{ {
EntityMotorBoat = new EntityMotorBoat(); EntityMotorBoat = new EntityMotorBoat();
EntityMotorBoat.Init(speed, weight, bodyColor, additionalColor, inboardEngine, paddle, protectiveGlass); EntityMotorBoat.Init(speed, weight, bodyColor, additionalColor, inboardEngine, protectiveGlass);
EntityPaddle = new EntityPaddle();
EntityPaddle.Init(paddle);
_pictureWidth = null; _pictureWidth = null;
_pictureHeight = null; _pictureHeight = null;
_startPosX = null; _startPosX = null;
@ -245,17 +252,32 @@ public class DrawingMotorBoat
} }
// Вёсла // Вёсла
if (EntityMotorBoat.Paddle) if (EntityPaddle.Paddle != 0)
{ {
g.DrawRectangle(pen, _startPosX.Value + 32, _startPosY.Value + 3, 2, 17); if (EntityPaddle.Paddle >= 1)
g.DrawRectangle(pen, _startPosX.Value + 32, _startPosY.Value + 30, 2, 17); {
g.FillRectangle(additionalBrush, _startPosX.Value + 33, _startPosY.Value + 3, 1, 17); g.DrawRectangle(pen, _startPosX.Value + 32, _startPosY.Value + 3, 2, 17);
g.FillRectangle(additionalBrush, _startPosX.Value + 33, _startPosY.Value + 31, 1, 16); g.FillRectangle(additionalBrush, _startPosX.Value + 33, _startPosY.Value + 3, 1, 17);
g.DrawEllipse(pen, _startPosX.Value + 30, _startPosY.Value, 6, 8); g.DrawEllipse(pen, _startPosX.Value + 30, _startPosY.Value, 6, 8);
g.DrawEllipse(pen, _startPosX.Value + 30, _startPosY.Value + 42, 6, 8); g.FillEllipse(additionalBrush, _startPosX.Value + 30, _startPosY.Value, 6, 8);
g.FillEllipse(additionalBrush, _startPosX.Value + 30, _startPosY.Value, 6, 8); }
g.FillEllipse(additionalBrush, _startPosX.Value + 30, _startPosY.Value + 42, 6, 8); if (EntityPaddle.Paddle >= 2)
{
g.DrawRectangle(pen, _startPosX.Value + 27, _startPosY.Value + 30, 2, 17);
g.FillRectangle(additionalBrush, _startPosX.Value + 28, _startPosY.Value + 31, 1, 16);
g.DrawEllipse(pen, _startPosX.Value + 25, _startPosY.Value + 42, 6, 8);
g.FillEllipse(additionalBrush, _startPosX.Value + 25, _startPosY.Value + 42, 6, 8);
}
if (EntityPaddle.Paddle == 3)
{
g.DrawRectangle(pen, _startPosX.Value + 36, _startPosY.Value + 30, 2, 17);
g.FillRectangle(additionalBrush, _startPosX.Value + 37, _startPosY.Value + 31, 1, 16);
g.DrawEllipse(pen, _startPosX.Value + 34, _startPosY.Value + 42, 6, 8);
g.FillEllipse(additionalBrush, _startPosX.Value + 34, _startPosY.Value + 42, 6, 8);
}
} }
// Защитное стекло // Защитное стекло

View File

@ -30,10 +30,10 @@ public class EntityMotorBoat
/// </summary> /// </summary>
public bool InboardEngine { get; private set; } public bool InboardEngine { get; private set; }
/// <summary> ///// <summary>
/// Признак (опция) наличия вёсел ///// Признак (опция) наличия вёсел
/// </summary> ///// </summary>
public bool Paddle { get; private set; } //public int Paddle { get; private set; }
/// <summary> /// <summary>
/// Возможность глиссирования /// Возможность глиссирования
@ -55,14 +55,30 @@ public class EntityMotorBoat
/// <param name="inboardEngine"></param> /// <param name="inboardEngine"></param>
/// <param name="inflatable"></param> /// <param name="inflatable"></param>
/// <param name="planing"></param> /// <param name="planing"></param>
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool inboardEngine, bool paddle, bool protectiveGlass) public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool inboardEngine, bool protectiveGlass)
{ {
Speed = speed; Speed = speed;
Weight = weight; Weight = weight;
BodyColor = bodyColor; BodyColor = bodyColor;
AdditionalColor = additionalColor; AdditionalColor = additionalColor;
InboardEngine = inboardEngine; InboardEngine = inboardEngine;
Paddle = paddle;
ProtectiveGlass = protectiveGlass; ProtectiveGlass = protectiveGlass;
} }
}
public class EntityPaddle
{
/// <summary>
/// Признак (опция) наличия вёсел
/// </summary>
public int Paddle { get; private set; }
/// <summary>
/// Инициализация полей объекта-класса вёсел
/// </summary>
/// <param name="paddle"></param>
public void Init(int paddle)
{
Paddle = paddle;
}
} }

View File

@ -47,7 +47,7 @@ public partial class FormMotorBoat : Form
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)),
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)), Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)),
Convert.ToBoolean(random.Next(0, 2))); random.Next(0, 4));
_drawingMotorBoat.SetPictureSize(pictureBoxMotorBoat.Width, pictureBoxMotorBoat.Height); _drawingMotorBoat.SetPictureSize(pictureBoxMotorBoat.Width, pictureBoxMotorBoat.Height);
_drawingMotorBoat.SetPosition(random.Next(10, 100), random.Next(10, 100)); _drawingMotorBoat.SetPosition(random.Next(10, 100), random.Next(10, 100));