сделала проверки
This commit is contained in:
parent
0ed6a26e24
commit
0c81d916fc
@ -8,7 +8,7 @@ namespace Catamaran
|
|||||||
private DrawningCatamaran? _drawningCatamaran;
|
private DrawningCatamaran? _drawningCatamaran;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ìåòîä ïðîðèñîâêè ìàøèíû
|
/// Ìåòîä ïðîðèñîâêè êàòàìàðàíà
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void Draw()
|
private void Draw()
|
||||||
{
|
{
|
||||||
@ -70,7 +70,7 @@ namespace Catamaran
|
|||||||
Color.FromArgb(random.Next(0, 256), random.Next(0, 256),
|
Color.FromArgb(random.Next(0, 256), 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)), pictureBoxCatamaran.Width, pictureBoxCatamaran.Height);
|
Convert.ToBoolean(random.Next(0, 2)), pictureBoxCatamaran.Width, pictureBoxCatamaran.Height);
|
||||||
_drawningCatamaran.SetPosition(random.Next(10, 100),
|
_drawningCatamaran.SetPosition(random.Next(10, 100),
|
||||||
random.Next(10, 100));
|
random.Next(10, 100));
|
||||||
Draw();
|
Draw();
|
||||||
|
@ -24,21 +24,21 @@ namespace Catamaran
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private int _pictureHeight;
|
private int _pictureHeight;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Левая координата прорисовки автомобиля
|
/// Левая координата прорисовки катамарана
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private int _startPosX;
|
private int _startPosX;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Верхняя кооридната прорисовки автомобиля
|
/// Верхняя кооридната прорисовки катамарана
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private int _startPosY;
|
private int _startPosY;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ширина прорисовки автомобиля
|
/// Ширина прорисовки катамарана
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly int _carWidth = 110;
|
private readonly int _CatamaranWidth = 190;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Высота прорисовки автомобиля
|
/// Высота прорисовки катамарана
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly int _carHeight = 60;
|
private readonly int _CatamaranHeight = 120;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Инициализация свойств
|
/// Инициализация свойств
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -46,20 +46,28 @@ namespace Catamaran
|
|||||||
/// <param name="weight">Вес</param>
|
/// <param name="weight">Вес</param>
|
||||||
/// <param name="bodyColor">Цвет корпуса</param>
|
/// <param name="bodyColor">Цвет корпуса</param>
|
||||||
/// <param name="additionalColor">Дополнительный цвет</param>
|
/// <param name="additionalColor">Дополнительный цвет</param>
|
||||||
/// <param name="bodySail">Признак наличия паруса</param>
|
/// <param name="sail">Признак наличия паруса</param>
|
||||||
|
/// <param name="floatDetail">Признак наличия поплавков</param>
|
||||||
/// <param name="width">Ширина картинки</param>
|
/// <param name="width">Ширина картинки</param>
|
||||||
/// <param name="height">Высота картинки</param>
|
/// <param name="height">Высота картинки</param>
|
||||||
/// <returns>true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах</returns>
|
/// <returns>true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах</returns>
|
||||||
public bool Init(int speed, double weight, Color bodyColor, Color
|
public bool Init(int speed, double weight, Color bodyColor, Color
|
||||||
additionalColor, bool bodySail, bool wing, bool sportLine, int width, int height)
|
additionalColor, bool sail, bool floatDetail, int width, int height)
|
||||||
{
|
{
|
||||||
// TODO: Продумать проверки
|
if (width >= _pictureWidth && height >= _pictureHeight)
|
||||||
_pictureWidth = width;
|
{
|
||||||
_pictureHeight = height;
|
_pictureWidth = width;
|
||||||
EntityCatamaran = new EntityCatamaran();
|
_pictureHeight = height;
|
||||||
EntityCatamaran.Init(speed, weight, bodyColor, additionalColor,
|
|
||||||
bodySail, wing, sportLine);
|
EntityCatamaran = new EntityCatamaran();
|
||||||
return true;
|
EntityCatamaran.Init(speed, weight, bodyColor, additionalColor, sail, floatDetail);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false; // Возвращаем false, если размеры формы недостаточны
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Установка позиции
|
/// Установка позиции
|
||||||
@ -68,9 +76,11 @@ namespace Catamaran
|
|||||||
/// <param name="y">Координата Y</param>
|
/// <param name="y">Координата Y</param>
|
||||||
public void SetPosition(int x, int y)
|
public void SetPosition(int x, int y)
|
||||||
{
|
{
|
||||||
// TODO: Изменение x, y
|
if (x >= 0 && x + _CatamaranWidth <= _pictureWidth && y >= 0 && y + _CatamaranHeight <= _pictureHeight)
|
||||||
_startPosX = x;
|
{
|
||||||
_startPosY = y;
|
_startPosX = x;
|
||||||
|
_startPosY = y;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Изменение направления перемещения
|
/// Изменение направления перемещения
|
||||||
@ -100,15 +110,14 @@ namespace Catamaran
|
|||||||
break;
|
break;
|
||||||
// вправо
|
// вправо
|
||||||
case Direction.Right:
|
case Direction.Right:
|
||||||
if (_startPosX + _carWidth + EntityCatamaran.Step < _pictureWidth )
|
if (_startPosX + _CatamaranWidth + EntityCatamaran.Step < _pictureWidth )
|
||||||
{
|
{
|
||||||
_startPosX += (int)EntityCatamaran.Step;
|
_startPosX += (int)EntityCatamaran.Step;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
//вниз
|
//вниз
|
||||||
case Direction.Down:
|
case Direction.Down:
|
||||||
if (_startPosY + _carHeight + EntityCatamaran.Step < _pictureHeight)
|
if (_startPosY + _CatamaranHeight + EntityCatamaran.Step < _pictureHeight)
|
||||||
{
|
{
|
||||||
_startPosY += (int)EntityCatamaran.Step;
|
_startPosY += (int)EntityCatamaran.Step;
|
||||||
}
|
}
|
||||||
@ -125,63 +134,68 @@ namespace Catamaran
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Pen pen = new(Color.Black, 4);
|
Pen pen = new(Color.Black, 3);
|
||||||
Brush additionalBrush = new
|
Brush additionalBrush = new
|
||||||
SolidBrush(EntityCatamaran.AdditionalColor);
|
SolidBrush(EntityCatamaran.AdditionalColor);
|
||||||
Brush bodyBrush = new
|
Brush bodyBrush = new
|
||||||
SolidBrush(EntityCatamaran.BodyColor);
|
SolidBrush(EntityCatamaran.BodyColor);
|
||||||
|
|
||||||
//поплавки
|
//поплавки
|
||||||
Point[] floatDetail1 = new Point[]
|
if (EntityCatamaran.Float)
|
||||||
{
|
{
|
||||||
new Point(_startPosX + 10, _startPosY + 40),
|
|
||||||
new Point(_startPosX + 170, _startPosY + 40),
|
|
||||||
new Point(_startPosX + 200, _startPosY + 55),
|
|
||||||
new Point(_startPosX + 170, _startPosY + 70),
|
|
||||||
new Point(_startPosX + 10, _startPosY + 70),
|
|
||||||
};
|
|
||||||
Point[] floatDetail2 = new Point[]
|
|
||||||
{
|
|
||||||
new Point(_startPosX + 10, _startPosY + 90),
|
|
||||||
new Point(_startPosX + 170, _startPosY + 90),
|
|
||||||
new Point(_startPosX + 200, _startPosY + 105),
|
|
||||||
new Point(_startPosX + 170, _startPosY + 120),
|
|
||||||
new Point(_startPosX + 10, _startPosY + 120),
|
|
||||||
};
|
|
||||||
|
|
||||||
|
Point[] floatDetail1 = new Point[]
|
||||||
g.FillPolygon(additionalBrush, floatDetail1);
|
{
|
||||||
g.FillPolygon(additionalBrush, floatDetail2);
|
new Point(_startPosX, _startPosY + 40),
|
||||||
|
new Point(_startPosX + 170, _startPosY + 40),
|
||||||
//границы катамарана
|
new Point(_startPosX + 190, _startPosY + 55),
|
||||||
|
new Point(_startPosX + 170, _startPosY + 70),
|
||||||
|
new Point(_startPosX, _startPosY + 70),
|
||||||
|
};
|
||||||
|
Point[] floatDetail2 = new Point[]
|
||||||
|
{
|
||||||
|
new Point(_startPosX, _startPosY + 90),
|
||||||
|
new Point(_startPosX + 170, _startPosY + 90),
|
||||||
|
new Point(_startPosX + 190, _startPosY + 105),
|
||||||
|
new Point(_startPosX + 170, _startPosY + 120),
|
||||||
|
new Point(_startPosX, _startPosY + 120),
|
||||||
|
};
|
||||||
|
g.FillPolygon(additionalBrush, floatDetail1);
|
||||||
|
g.FillPolygon(additionalBrush, floatDetail2);
|
||||||
|
g.DrawPolygon(pen, floatDetail1);
|
||||||
|
g.DrawPolygon(pen, floatDetail2);
|
||||||
|
}
|
||||||
|
//основание катамарана
|
||||||
Point[] hull = new Point[]
|
Point[] hull = new Point[]
|
||||||
{
|
{
|
||||||
new Point(_startPosX + 20, _startPosY + 50),
|
new Point(_startPosX + 20, _startPosY + 50),
|
||||||
new Point(_startPosX + 130, _startPosY + 50),
|
new Point(_startPosX + 130, _startPosY + 50),
|
||||||
new Point(_startPosX + 170, _startPosY + 80),
|
new Point(_startPosX + 170, _startPosY + 80),
|
||||||
new Point(_startPosX + 130, _startPosY + 110),
|
new Point(_startPosX + 130, _startPosY + 110),
|
||||||
new Point(_startPosX + 20, _startPosY + 110),
|
new Point(_startPosX + 20, _startPosY + 110),
|
||||||
};
|
};
|
||||||
g.DrawPolygon(pen, hull);
|
|
||||||
g.FillPolygon(bodyBrush, hull);
|
|
||||||
|
|
||||||
|
g.FillPolygon(bodyBrush, hull);
|
||||||
|
g.DrawPolygon(pen, hull);
|
||||||
SolidBrush brushBrown = new SolidBrush(Color.Brown);
|
SolidBrush brushBrown = new SolidBrush(Color.Brown);
|
||||||
g.FillEllipse(brushBrown, _startPosX + 30, _startPosY + 60, 100, 40);
|
g.FillEllipse(brushBrown, _startPosX + 30, _startPosY + 60, 100, 40);
|
||||||
|
|
||||||
//парус
|
//парус
|
||||||
Point[] sail = new Point[]
|
if (EntityCatamaran.Sail)
|
||||||
{
|
{
|
||||||
new Point(_startPosX + 30, _startPosY + 80),
|
Point[] sail = new Point[]
|
||||||
new Point(_startPosX + 70, _startPosY+10),
|
{
|
||||||
new Point(_startPosX + 145, _startPosY + 80),
|
new Point(_startPosX + 30, _startPosY + 80),
|
||||||
|
new Point(_startPosX + 70, _startPosY+10),
|
||||||
};
|
new Point(_startPosX + 145, _startPosY + 80),
|
||||||
g.DrawPolygon(pen, sail);
|
|
||||||
SolidBrush brushBlue = new SolidBrush(Color.LightBlue);
|
|
||||||
g.FillPolygon(brushBlue, sail);
|
|
||||||
|
|
||||||
g.DrawRectangle(pen, _startPosX + 70, _startPosY, 4, 85);
|
|
||||||
|
|
||||||
|
};
|
||||||
|
g.DrawPolygon(pen, sail);
|
||||||
|
g.FillPolygon(additionalBrush, sail);
|
||||||
|
g.DrawPolygon(pen, sail);
|
||||||
|
g.DrawRectangle(pen, _startPosX + 70, _startPosY, 3, 85);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,41 +25,35 @@ namespace Catamaran
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public Color AdditionalColor { get; private set; }
|
public Color AdditionalColor { get; private set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Признак (опция) наличия обвеса
|
/// Признак (опция) наличия паруса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool BodyKit { get; private set; }
|
public bool Sail { get; private set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Признак (опция) наличия антикрыла
|
/// Признак (опция) наличия поплавков
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Wing { get; private set; }
|
public bool Float { get; private set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Признак (опция) наличия гоночной полосы
|
/// Шаг перемещения катамарана
|
||||||
/// </summary>
|
|
||||||
public bool SportLine { get; private set; }
|
|
||||||
/// <summary>
|
|
||||||
/// Шаг перемещения автомобиля
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double Step => (double)Speed * 100 / Weight;
|
public double Step => (double)Speed * 100 / Weight;
|
||||||
/// <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="bodyColor">Основной цвет</param>
|
||||||
/// <param name="additionalColor">Дополнительный цвет</param>
|
/// <param name="additionalColor">Дополнительный цвет</param>
|
||||||
/// <param name="bodyKit">Признак наличия обвеса</param>
|
/// <param name="sail">Признак наличия паруса</param>
|
||||||
/// <param name="wing">Признак наличия антикрыла</param>
|
/// <param name="floatDetail">Признак наличия поплавков</param>
|
||||||
/// <param name="sportLine">Признак наличия гоночной полосы</param>
|
|
||||||
public void Init(int speed, double weight, Color bodyColor, Color
|
public void Init(int speed, double weight, Color bodyColor, Color
|
||||||
additionalColor, bool bodyKit, bool wing, bool sportLine)
|
additionalColor, bool sail, bool floatDetail)
|
||||||
{
|
{
|
||||||
Speed = speed;
|
Speed = speed;
|
||||||
Weight = weight;
|
Weight = weight;
|
||||||
BodyColor = bodyColor;
|
BodyColor = bodyColor;
|
||||||
AdditionalColor = additionalColor;
|
AdditionalColor = additionalColor;
|
||||||
BodyKit = bodyKit;
|
Sail = sail;
|
||||||
Wing = wing;
|
Float = floatDetail;
|
||||||
SportLine = sportLine;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user