Фикс ошибки с цветами

This commit is contained in:
Marselchi
2023-12-03 14:42:46 +04:00
parent d732ad2663
commit 3983ae497f
6 changed files with 31 additions and 25 deletions

View File

@@ -19,12 +19,12 @@ namespace Liner.Drawing
/// <param name="deck">Признак наличия доп палубы</param> /// <param name="deck">Признак наличия доп палубы</param>
/// <param name="width">Ширина картинки</param> /// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param> /// <param name="height">Высота картинки</param>
public DrawingBigLiner(int speed, double weight, Color bodyColor, Color bottomColor, bool swimmingPool, bool deck, int width, int height) public DrawingBigLiner(int speed, double weight, Color bottomColor, Color bodyColor, bool swimmingPool, bool deck, int width, int height)
: base(speed,weight,bodyColor,bottomColor,width,height,100,80) : base(speed,weight,bodyColor,width,height,100,80)
{ {
if(EntityLiner!= null) if(EntityLiner!= null)
{ {
EntityLiner = new EntityBigLiner(speed, weight, bodyColor, bottomColor, deck, swimmingPool); EntityLiner = new EntityBigLiner(speed, weight,bottomColor, bodyColor, deck, swimmingPool);
} }
} }
@@ -41,8 +41,8 @@ namespace Liner.Drawing
} }
Pen pen = new(Color.Black); Pen pen = new(Color.Black);
Brush poolBrush = new SolidBrush(Color.Blue); Brush poolBrush = new SolidBrush(Color.Blue);
Brush bottomBrush = new SolidBrush(EntityLiner.BottomColor); Brush bottomBrush = new SolidBrush(liner.BottomColor);
Brush deckBrush = new SolidBrush(EntityLiner.BodyColor); Brush deckBrush = new SolidBrush(liner.BodyColor);
// палуба // палуба
Point[] firstDeck = {new Point(_startPosX + 30, _startPosY), new Point(_startPosX + 30 + 60, _startPosY), Point[] firstDeck = {new Point(_startPosX + 30, _startPosY), new Point(_startPosX + 30 + 60, _startPosY),
new Point(_startPosX + 30 + 60, _startPosY + 20), new Point(_startPosX + 30, _startPosY + 20)}; new Point(_startPosX + 30 + 60, _startPosY + 20), new Point(_startPosX + 30, _startPosY + 20)};
@@ -76,5 +76,12 @@ namespace Liner.Drawing
g.DrawPolygon(pen, bottom);//рисуем нижний корпус g.DrawPolygon(pen, bottom);//рисуем нижний корпус
if (liner.SwimmingPool) { g.FillPolygon(poolBrush, pool); }//рисуем бассейн if (liner.SwimmingPool) { g.FillPolygon(poolBrush, pool); }//рисуем бассейн
} }
/// <summary>
/// установка цвета большого лайнера
/// </summary>
public void SetAddColor(Color color)
{
(EntityLiner as EntityBigLiner).BodyColor = color;
}
} }
} }

View File

@@ -63,32 +63,32 @@ namespace Liner.Drawing
/// </summary> /// </summary>
/// <param name="speed">Скорость</param> /// <param name="speed">Скорость</param>
/// <param name="weight">Вес лайнера</param> /// <param name="weight">Вес лайнера</param>
/// <param name="bodyColor">Основной цвет</param> /// <param name="bottomColor">Основной цвет</param>
/// <param name="width">Ширина картинки</param> /// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param> /// <param name="height">Высота картинки</param>
public DrawingLiner(int speed, double weight, Color bodyColor, Color bottomColor, int width, int height) public DrawingLiner(int speed, double weight, Color bottomColor, int width, int height)
{ {
_pictureWidth = width; _pictureWidth = width;
_pictureHeight = height; _pictureHeight = height;
EntityLiner = new EntityLiner(speed, weight, bodyColor, bottomColor); EntityLiner = new EntityLiner(speed, weight, bottomColor);
} }
/// <summary> /// <summary>
/// Конструктор /// Конструктор
/// </summary> /// </summary>
/// <param name="speed">Скорость</param> /// <param name="speed">Скорость</param>
/// <param name="weight">Вес лайнера</param> /// <param name="weight">Вес лайнера</param>
/// <param name="bodyColor">Основной цвет</param> /// <param name="bottomColor">Основной цвет</param>
/// <param name="width">Ширина картинки</param> /// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param> /// <param name="height">Высота картинки</param>
/// <param name="linerWidth">Ширина прорисовки лайнера</param> /// <param name="linerWidth">Ширина прорисовки лайнера</param>
/// <param name="linerHeight">Высота прорисовки лайнера</param> /// <param name="linerHeight">Высота прорисовки лайнера</param>
protected DrawingLiner(int speed, double weight, Color bodyColor, Color bottomColor, int width, int height,int linerWidth,int linerHeight) protected DrawingLiner(int speed, double weight, Color bottomColor, int width, int height,int linerWidth,int linerHeight)
{ {
_linerHeight = linerHeight; _linerHeight = linerHeight;
_linerWidth = linerWidth; _linerWidth = linerWidth;
_pictureWidth = width; _pictureWidth = width;
_pictureHeight = height; _pictureHeight = height;
EntityLiner = new EntityLiner(speed, weight, bodyColor, bottomColor); EntityLiner = new EntityLiner(speed, weight, bottomColor);
} }
/// <summary> /// <summary>
/// Установка позиции /// Установка позиции
@@ -113,8 +113,8 @@ namespace Liner.Drawing
return; return;
} }
Pen pen = new(Color.Black); Pen pen = new(Color.Black);
Brush bottomBrush = new SolidBrush(EntityLiner.BottomColor); Brush bottomBrush = new SolidBrush(EntityLiner.BottomColor);
Brush deckBrush = new SolidBrush(EntityLiner.BodyColor); Brush deckBrush = new SolidBrush(Color.Black);//черная палуба по умолчанию
// палуба // палуба
Point[] firstDeck = {new Point(_startPosX + 30, _startPosY), new Point(_startPosX + 30 + 60, _startPosY), Point[] firstDeck = {new Point(_startPosX + 30, _startPosY), new Point(_startPosX + 30 + 60, _startPosY),
new Point(_startPosX + 30 + 60, _startPosY + 20), new Point(_startPosX + 30, _startPosY + 20)}; new Point(_startPosX + 30 + 60, _startPosY + 20), new Point(_startPosX + 30, _startPosY + 20)};

View File

@@ -17,6 +17,10 @@ namespace Liner.Entities
/// </summary> /// </summary>
public bool Deck { get; private set; } public bool Deck { get; private set; }
/// <summary> /// <summary>
/// Доп цвет
/// </summary>
public Color BodyColor { get; set; }
/// <summary>
/// Конструктор с параметрами /// Конструктор с параметрами
/// </summary> /// </summary>
/// <param name="speed">Скорость</param> /// <param name="speed">Скорость</param>
@@ -25,10 +29,11 @@ namespace Liner.Entities
/// <param name="bottomColor">Дополнительный цвет</param> /// <param name="bottomColor">Дополнительный цвет</param>
/// <param name="deck">Признак наличия доп палубы</param> /// <param name="deck">Признак наличия доп палубы</param>
/// <param name="swimmingPool">Признак наличия бассейна</param> /// <param name="swimmingPool">Признак наличия бассейна</param>
public EntityBigLiner(int speed, double weight, Color bodyColor, Color bottomColor,bool deck, bool swimmingPool) : base(speed, weight, bodyColor,bottomColor) public EntityBigLiner(int speed, double weight, Color bottomColor,Color bodyColor,bool deck, bool swimmingPool) : base(speed, weight, bottomColor)
{ {
Deck = deck; Deck = deck;
SwimmingPool = swimmingPool; SwimmingPool = swimmingPool;
BodyColor = bodyColor;
} }
} }
} }

View File

@@ -20,10 +20,6 @@ namespace Liner.Entities
/// <summary> /// <summary>
/// Основной цвет /// Основной цвет
/// </summary> /// </summary>
public Color BodyColor { get; set; }
/// <summary>
/// Доп цвет
/// </summary>
public Color BottomColor { get; set; } public Color BottomColor { get; set; }
/// <summary> /// <summary>
/// Шаг /// Шаг
@@ -34,13 +30,11 @@ namespace Liner.Entities
/// </summary> /// </summary>
/// <param name="speed">Скорость</param> /// <param name="speed">Скорость</param>
/// <param name="weight">Вес лайнера</param> /// <param name="weight">Вес лайнера</param>
/// <param name="bodyColor">Основной цвет</param> /// <param name="bottomColor">Основной цвет</param>
/// <param name="bottomColor">Доп цвет</param> public EntityLiner(int speed, double weight, Color bottomColor)
public EntityLiner(int speed, double weight, Color bodyColor, Color bottomColor)
{ {
Speed = speed; Speed = speed;
Weight = weight; Weight = weight;
BodyColor = bodyColor;
BottomColor = bottomColor; BottomColor = bottomColor;
} }
} }

View File

@@ -113,7 +113,7 @@ namespace Liner
{ {
case "labelSimpleObject": case "labelSimpleObject":
_liner = new DrawingLiner((int)numericUpDownSpeed.Value, _liner = new DrawingLiner((int)numericUpDownSpeed.Value,
(int)numericUpDownWeight.Value, Color.White, Color.Black, pictureBoxObject.Width, (int)numericUpDownWeight.Value, Color.White, pictureBoxObject.Width,
pictureBoxObject.Height); pictureBoxObject.Height);
break; break;
case "labelModifiedObject": case "labelModifiedObject":
@@ -150,7 +150,7 @@ namespace Liner
case "labelAddColor": case "labelAddColor":
if (!(_liner is DrawingBigLiner)) if (!(_liner is DrawingBigLiner))
return; return;
(_liner as DrawingBigLiner).EntityLiner.BodyColor = (Color)e.Data.GetData(typeof(Color)); (_liner as DrawingBigLiner).SetAddColor((Color)e.Data.GetData(typeof(Color)));
break; break;
} }
DrawLiner(); DrawLiner();

View File

@@ -55,7 +55,7 @@ namespace Liner
addColor = dialog.Color; addColor = dialog.Color;
} }
_drawingLiner = new DrawingLiner(random.Next(100, 300), _drawingLiner = new DrawingLiner(random.Next(100, 300),
random.Next(1000, 3000), mainColor, addColor, random.Next(1000, 3000), mainColor,
pictureBoxLiner.Width, pictureBoxLiner.Height); pictureBoxLiner.Width, pictureBoxLiner.Height);
_drawingLiner.SetPosition(random.Next(10, 100), random.Next(10, 100)); _drawingLiner.SetPosition(random.Next(10, 100), random.Next(10, 100));
Draw(); Draw();