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

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="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
public DrawingBigLiner(int speed, double weight, Color bodyColor, Color bottomColor, bool swimmingPool, bool deck, int width, int height)
: base(speed,weight,bodyColor,bottomColor,width,height,100,80)
public DrawingBigLiner(int speed, double weight, Color bottomColor, Color bodyColor, bool swimmingPool, bool deck, int width, int height)
: base(speed,weight,bodyColor,width,height,100,80)
{
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);
Brush poolBrush = new SolidBrush(Color.Blue);
Brush bottomBrush = new SolidBrush(EntityLiner.BottomColor);
Brush deckBrush = new SolidBrush(EntityLiner.BodyColor);
Brush bottomBrush = new SolidBrush(liner.BottomColor);
Brush deckBrush = new SolidBrush(liner.BodyColor);
// палуба
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)};
@@ -76,5 +76,12 @@ namespace Liner.Drawing
g.DrawPolygon(pen, bottom);//рисуем нижний корпус
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>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес лайнера</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="bottomColor">Основной цвет</param>
/// <param name="width">Ширина картинки</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;
_pictureHeight = height;
EntityLiner = new EntityLiner(speed, weight, bodyColor, bottomColor);
EntityLiner = new EntityLiner(speed, weight, bottomColor);
}
/// <summary>
/// Конструктор
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес лайнера</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="bottomColor">Основной цвет</param>
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
/// <param name="linerWidth">Ширина прорисовки лайнера</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;
_linerWidth = linerWidth;
_pictureWidth = width;
_pictureHeight = height;
EntityLiner = new EntityLiner(speed, weight, bodyColor, bottomColor);
EntityLiner = new EntityLiner(speed, weight, bottomColor);
}
/// <summary>
/// Установка позиции
@@ -113,8 +113,8 @@ namespace Liner.Drawing
return;
}
Pen pen = new(Color.Black);
Brush bottomBrush = new SolidBrush(EntityLiner.BottomColor);
Brush deckBrush = new SolidBrush(EntityLiner.BodyColor);
Brush bottomBrush = new SolidBrush(EntityLiner.BottomColor);
Brush deckBrush = new SolidBrush(Color.Black);//черная палуба по умолчанию
// палуба
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)};

View File

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

View File

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

View File

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

View File

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