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