LabWork01
This commit is contained in:
parent
9eff3d959a
commit
dcc4f2c688
@ -39,9 +39,9 @@ public class DrawningArtillery
|
|||||||
/// <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="cannon">Признак наличия пушки</param>
|
||||||
/// <param name="wing">Признак наличия антикрыла</param>
|
/// <param name="rocket">Признак наличия залповой установки</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 cannon, bool rocket)
|
additionalColor, bool cannon, bool rocket)
|
||||||
{
|
{
|
||||||
@ -60,15 +60,20 @@ public class DrawningArtillery
|
|||||||
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
|
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
|
||||||
public bool SetPictureSize(int width, int height)
|
public bool SetPictureSize(int width, int height)
|
||||||
{
|
{
|
||||||
// TODO проверка, что объект "влезает" в размеры поля
|
if (_drawningArtilleryHeight > height || _drawningArtilleryWidth > width)
|
||||||
// если влезает, сохраняем границы и корректируем позицию объекта,если она была уже установлена
|
|
||||||
if (width >= _drawningArtilleryWidth && height >= _drawningArtilleryHeight)
|
|
||||||
{
|
{
|
||||||
_pictureWidth = width;
|
return false;
|
||||||
_pictureHeight = height;
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
|
_pictureWidth = width;
|
||||||
|
_pictureHeight = height;
|
||||||
|
|
||||||
|
if (_startPosX.HasValue && _startPosY.HasValue)
|
||||||
|
{
|
||||||
|
SetPosition(_startPosX.Value, _startPosY.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Установка позиции
|
/// Установка позиции
|
||||||
@ -83,16 +88,23 @@ public class DrawningArtillery
|
|||||||
}
|
}
|
||||||
// TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы
|
// TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы
|
||||||
// то надо изменить координаты, чтобы он оставался в этих границах
|
// то надо изменить координаты, чтобы он оставался в этих границах
|
||||||
if (x + 110 > _pictureWidth.Value)
|
if (x < 0 || x + _drawningArtilleryWidth > _pictureWidth)
|
||||||
{
|
{
|
||||||
x -= (x + 110) - _pictureWidth.Value;
|
_startPosX = _pictureWidth - _drawningArtilleryWidth;
|
||||||
}
|
}
|
||||||
if (y + 60 > _pictureHeight.Value)
|
else
|
||||||
{
|
{
|
||||||
y -= (y + 60) - _pictureHeight.Value;
|
_startPosX = x;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (y < 0 || y + _drawningArtilleryHeight > _pictureHeight)
|
||||||
|
{
|
||||||
|
_startPosY = _pictureHeight - _drawningArtilleryHeight;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_startPosY = y;
|
||||||
}
|
}
|
||||||
_startPosX = x;
|
|
||||||
_startPosY = y;
|
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Изменение направления перемещения
|
/// Изменение направления перемещения
|
||||||
@ -160,53 +172,53 @@ public class DrawningArtillery
|
|||||||
Brush grayBrush = new SolidBrush(Color.Gray);
|
Brush grayBrush = new SolidBrush(Color.Gray);
|
||||||
Brush blackBrush = new SolidBrush(Color.Black);
|
Brush blackBrush = new SolidBrush(Color.Black);
|
||||||
//тело
|
//тело
|
||||||
g.FillRectangle(additionalBrush, _startPosX.Value, _startPosY.Value + 40, 110, 20);
|
g.FillRectangle(brush, _startPosX.Value, _startPosY.Value + 40, 110, 20);
|
||||||
g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 40, 110, 20);
|
g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 40, 110, 20);
|
||||||
|
|
||||||
//башня
|
//башня
|
||||||
g.FillRectangle(additionalBrush, _startPosX.Value+30, _startPosY.Value+20,50,20);
|
g.FillRectangle(brush, _startPosX.Value+30, _startPosY.Value+20,50,20);
|
||||||
g.DrawRectangle(pen, _startPosX.Value+30, _startPosY.Value + 20, 50, 20);
|
g.DrawRectangle(pen, _startPosX.Value+30, _startPosY.Value + 20, 50, 20);
|
||||||
//ходовая
|
//ходовая
|
||||||
//основа
|
//основа
|
||||||
g.DrawEllipse(pen, _startPosX.Value, _startPosY.Value + 50, 110, 20);
|
g.DrawEllipse(pen, _startPosX.Value, _startPosY.Value + 50, 110, 20);
|
||||||
g.FillEllipse(grayBrush, _startPosX.Value, _startPosY.Value + 50, 110, 20);
|
g.FillEllipse(grayBrush, _startPosX.Value, _startPosY.Value + 50, 110, 20);
|
||||||
//1-e
|
//1-й
|
||||||
g.DrawEllipse(pen, _startPosX.Value + 25, _startPosY.Value + 58, 11, 11);
|
g.DrawEllipse(pen, _startPosX.Value + 25, _startPosY.Value + 58, 11, 11);
|
||||||
g.FillEllipse(blackBrush, _startPosX.Value + 25, _startPosY.Value + 58, 11, 11);
|
g.FillEllipse(blackBrush, _startPosX.Value + 25, _startPosY.Value + 58, 11, 11);
|
||||||
|
|
||||||
//2-ое
|
//2-й
|
||||||
g.DrawEllipse(pen, _startPosX.Value + 40, _startPosY.Value + 58, 11, 11);
|
g.DrawEllipse(pen, _startPosX.Value + 40, _startPosY.Value + 58, 11, 11);
|
||||||
g.FillEllipse(blackBrush, _startPosX.Value + 40, _startPosY.Value + 58, 11, 11);
|
g.FillEllipse(blackBrush, _startPosX.Value + 40, _startPosY.Value + 58, 11, 11);
|
||||||
|
|
||||||
//3-ее
|
//3-й
|
||||||
g.DrawEllipse(pen, _startPosX.Value + 55, _startPosY.Value + 58, 11, 11);
|
g.DrawEllipse(pen, _startPosX.Value + 55, _startPosY.Value + 58, 11, 11);
|
||||||
g.FillEllipse(blackBrush, _startPosX.Value + 55, _startPosY.Value + 58, 11, 11);
|
g.FillEllipse(blackBrush, _startPosX.Value + 55, _startPosY.Value + 58, 11, 11);
|
||||||
|
|
||||||
//4-ое
|
//4-й
|
||||||
g.DrawEllipse(pen, _startPosX.Value + 70, _startPosY.Value + 58, 11, 11);
|
g.DrawEllipse(pen, _startPosX.Value + 70, _startPosY.Value + 58, 11, 11);
|
||||||
g.FillEllipse(blackBrush, _startPosX.Value + 70, _startPosY.Value + 58, 11, 11);
|
g.FillEllipse(blackBrush, _startPosX.Value + 70, _startPosY.Value + 58, 11, 11);
|
||||||
|
|
||||||
//5-ое
|
//5-ЛевБол
|
||||||
g.DrawEllipse(pen, _startPosX.Value + 90, _startPosY.Value + 52, 15, 15);
|
g.DrawEllipse(pen, _startPosX.Value + 90, _startPosY.Value + 52, 15, 15);
|
||||||
g.FillEllipse(blackBrush, _startPosX.Value + 90, _startPosY.Value + 52, 15, 15);
|
g.FillEllipse(blackBrush, _startPosX.Value + 90, _startPosY.Value + 52, 15, 15);
|
||||||
|
|
||||||
//6-ое
|
//6-ПравБол
|
||||||
g.DrawEllipse(pen, _startPosX.Value + 7, _startPosY.Value + 52, 15, 15);
|
g.DrawEllipse(pen, _startPosX.Value + 7, _startPosY.Value + 52, 15, 15);
|
||||||
g.FillEllipse(blackBrush, _startPosX.Value + 7, _startPosY.Value + 52, 15, 15);
|
g.FillEllipse(blackBrush, _startPosX.Value + 7, _startPosY.Value + 52, 15, 15);
|
||||||
//орудие
|
//орудие
|
||||||
if (EntityArtillery.Cannon)
|
if (EntityArtillery.Cannon)
|
||||||
{
|
{
|
||||||
g.FillRectangle(brush, _startPosX.Value+80, _startPosY.Value + 25, 50, 5);
|
g.FillRectangle(additionalBrush, _startPosX.Value+80, _startPosY.Value + 25, 50, 5);
|
||||||
g.DrawRectangle(pen, _startPosX.Value+80, _startPosY.Value + 25, 50, 5);
|
g.DrawRectangle(pen, _startPosX.Value+80, _startPosY.Value + 25, 50, 5);
|
||||||
}
|
}
|
||||||
//установка
|
//установка
|
||||||
if (EntityArtillery.Cannon)
|
if (EntityArtillery.Cannon)
|
||||||
{
|
{
|
||||||
//колонна
|
//колонна
|
||||||
g.FillRectangle(brush, _startPosX.Value +5, _startPosY.Value + 10, 5, 30);
|
g.FillRectangle(additionalBrush, _startPosX.Value +5, _startPosY.Value + 10, 5, 30);
|
||||||
g.DrawRectangle(pen, _startPosX.Value +5, _startPosY.Value + 10, 5, 30);
|
g.DrawRectangle(pen, _startPosX.Value +5, _startPosY.Value + 10, 5, 30);
|
||||||
//контейнер
|
//контейнер
|
||||||
g.FillRectangle(brush, _startPosX.Value + 3, _startPosY.Value + 5, 50, 13);
|
g.FillRectangle(additionalBrush, _startPosX.Value + 3, _startPosY.Value + 5, 50, 13);
|
||||||
g.DrawRectangle(pen, _startPosX.Value + 3, _startPosY.Value + 5, 50, 13);
|
g.DrawRectangle(pen, _startPosX.Value + 3, _startPosY.Value + 5, 50, 13);
|
||||||
//ракеты
|
//ракеты
|
||||||
g.DrawRectangle(pen, _startPosX.Value + 52, _startPosY.Value + 5, 10, 3);
|
g.DrawRectangle(pen, _startPosX.Value + 52, _startPosY.Value + 5, 10, 3);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
namespace SelfPropelledArtilleryUnit;
|
namespace SelfPropelledArtilleryUnit;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс-сущность "Спортивный автомобиль"
|
/// Класс-сущность "САУ"
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
|
|
||||||
@ -23,11 +23,11 @@ public class EntityArtillery
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public Color AdditionalColor { get; private set; }
|
public Color AdditionalColor { get; private set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Признак (опция) наличия обвеса
|
/// Признак (опция) наличия пушки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Cannon { get; private set; }
|
public bool Cannon { get; private set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Признак (опция) наличия антикрыла
|
/// Признак (опция) наличия залповой установки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Rocket { get; private set; }
|
public bool Rocket { get; private set; }
|
||||||
|
|
||||||
@ -42,9 +42,9 @@ public class EntityArtillery
|
|||||||
/// <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="cannon">Признак наличия пушки</param>
|
||||||
/// <param name="wing">Признак наличия антикрыла</param>
|
/// <param name="rocket">Признак наличия залповой установки</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 cannon, bool rocket)
|
additionalColor, bool cannon, bool rocket)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user