Коллекция объектов
This commit is contained in:
parent
d215fc5864
commit
bf7cfe1f84
@ -76,7 +76,7 @@ public class DrawningWarPlane
|
|||||||
/// <param name="weight">Вес</param>
|
/// <param name="weight">Вес</param>
|
||||||
/// <param name="bodyColor">Основной цвет</param>
|
/// <param name="bodyColor">Основной цвет</param>
|
||||||
public DrawningWarPlane(int speed, double weight, Color bodyColor) : this()
|
public DrawningWarPlane(int speed, double weight, Color bodyColor) : this()
|
||||||
{
|
public void Init(EntityAirFighter entityAirFighter)
|
||||||
EntityWarPlane = new EntityWarPlane(speed, weight, bodyColor);
|
EntityWarPlane = new EntityWarPlane(speed, weight, bodyColor);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -90,7 +90,9 @@ public class DrawningWarPlane
|
|||||||
_drawningWarPlaneWidth = drawningWarPlaneWidth;
|
_drawningWarPlaneWidth = drawningWarPlaneWidth;
|
||||||
_drawningWarPlaneHeight = drawningWarPlaneHeight;
|
_drawningWarPlaneHeight = drawningWarPlaneHeight;
|
||||||
|
|
||||||
}
|
_startPosY = null;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -98,7 +100,9 @@ public class DrawningWarPlane
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="width">Ширина поля</param>
|
/// <param name="width">Ширина поля</param>
|
||||||
/// <param name="height">Высота поля</param>
|
/// <param name="height">Высота поля</param>
|
||||||
/// <returns></returns>
|
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
|
||||||
|
|
||||||
|
|
||||||
public bool SetPictureSize(int width, int height)
|
public bool SetPictureSize(int width, int height)
|
||||||
{
|
{
|
||||||
if (width > _drawningWarPlaneWidth && height > _drawningWarPlaneHeight)
|
if (width > _drawningWarPlaneWidth && height > _drawningWarPlaneHeight)
|
||||||
@ -131,6 +135,10 @@ public class DrawningWarPlane
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Установка позиции
|
/// Установка позиции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -166,25 +174,23 @@ public class DrawningWarPlane
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Изменение направления перемещения
|
/// Изменение направления перемещения
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="direction">Направление</param>
|
/// <param name="direction">Направление</param>
|
||||||
/// <returns>true - перемещение выполнено, false - перемещение невозможно </returns>
|
/// <returns>true - перемещене выполнено, false - перемещение невозможно</returns>
|
||||||
public bool MoveTransport(DirectionType direction)
|
public bool MoveTransport(DirectionType direction)
|
||||||
{
|
{
|
||||||
if (EntityWarPlane == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
if (EntityWarPlane == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (direction)
|
switch (direction)
|
||||||
{
|
{
|
||||||
//влево
|
|
||||||
case DirectionType.Left:
|
|
||||||
if (_startPosX.Value - EntityWarPlane.Step > 0)
|
if (_startPosX.Value - EntityWarPlane.Step > 0)
|
||||||
|
if (_startPosX.Value - EntityAirFighter.Step > 0)
|
||||||
|
if (_startPosX.Value - EntityAirFighter.Step > 0)
|
||||||
{
|
{
|
||||||
_startPosX -= (int)EntityWarPlane.Step;
|
_startPosX -= (int)EntityWarPlane.Step;
|
||||||
}
|
}
|
||||||
@ -196,13 +202,22 @@ public class DrawningWarPlane
|
|||||||
_startPosY -= (int)EntityWarPlane.Step;
|
_startPosY -= (int)EntityWarPlane.Step;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
//вниз
|
// вправо
|
||||||
case DirectionType.Down:
|
case DirectionType.Right:
|
||||||
if (_startPosY.Value + EntityWarPlane.Step + _drawningWarPlaneWidth < _pictureHeight)
|
//TODO прописать логику сдвига в право
|
||||||
|
|
||||||
|
if (_startPosX.Value + _drawningAirFlighterWidth + EntityAirFighter.Step < _pictureWidth)
|
||||||
{
|
{
|
||||||
_startPosY += (int)EntityWarPlane.Step;
|
|
||||||
|
_startPosX += (int)EntityAirFighter.Step;
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
if (_startPosY.Value + EntityWarPlane.Step + _drawningWarPlaneWidth < _pictureHeight)
|
||||||
|
if (_startPosY.Value + EntityAirFighter.Step + _drawningAirFlighterHeight < _pictureHeight)
|
||||||
|
if (_startPosY.Value + EntityAirFighter.Step + _drawningAirFlighterHeight < _pictureHeight)
|
||||||
|
{
|
||||||
|
_startPosY += (int)EntityWarPlane.Step;
|
||||||
//вправо
|
//вправо
|
||||||
case DirectionType.Right:
|
case DirectionType.Right:
|
||||||
if (_startPosX.Value + EntityWarPlane.Step + _drawningWarPlaneWidth < _pictureWidth)
|
if (_startPosX.Value + EntityWarPlane.Step + _drawningWarPlaneWidth < _pictureWidth)
|
||||||
@ -210,18 +225,55 @@ public class DrawningWarPlane
|
|||||||
_startPosX += (int)EntityWarPlane.Step;
|
_startPosX += (int)EntityWarPlane.Step;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
return true;
|
||||||
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static GraphicsPath RoundedRect(Graphics g, Rectangle bounds, int radius)
|
||||||
|
{
|
||||||
|
int diameter = radius * 2;
|
||||||
|
Size size = new Size(diameter, diameter);
|
||||||
|
Rectangle arc = new Rectangle(bounds.Location, size);
|
||||||
|
GraphicsPath path = new GraphicsPath();
|
||||||
|
|
||||||
|
if (radius == 0)
|
||||||
|
{
|
||||||
|
path.AddRectangle(bounds);
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
// top left arc
|
||||||
|
path.AddArc(arc, 180, 90);
|
||||||
|
|
||||||
|
// top right arc
|
||||||
|
arc.X = bounds.Right - diameter;
|
||||||
|
path.AddArc(arc, 270, 90);
|
||||||
|
|
||||||
|
// bottom right arc
|
||||||
|
arc.Y = bounds.Bottom - diameter;
|
||||||
|
path.AddArc(arc, 0, 90);
|
||||||
|
|
||||||
|
// bottom left arc
|
||||||
|
arc.X = bounds.Left;
|
||||||
|
path.AddArc(arc, 90, 90);
|
||||||
|
|
||||||
|
g.FillPath(Brushes.Black, path);
|
||||||
|
|
||||||
|
path.CloseFigure();
|
||||||
|
return path;
|
||||||
public virtual void DrawTransport(Graphics g)
|
public virtual void DrawTransport(Graphics g)
|
||||||
|
public void DrawTransport(Graphics g)
|
||||||
|
public void DrawTransport(Graphics g)
|
||||||
{
|
{
|
||||||
if (EntityWarPlane == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
if (EntityWarPlane == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
Pen pen = new(Color.Black, 3);
|
Pen pen = new(Color.Black, 3);
|
||||||
Pen pen_rocket = new(Color.Black);
|
Pen pen_rocket = new(Color.Black);
|
||||||
|
|
||||||
@ -253,7 +305,7 @@ public class DrawningWarPlane
|
|||||||
//залив носа
|
//залив носа
|
||||||
Brush brBlack = new SolidBrush(Color.Black);
|
Brush brBlack = new SolidBrush(Color.Black);
|
||||||
g.FillPolygon(brBlack, body);
|
g.FillPolygon(brBlack, body);
|
||||||
|
g.FillPolygon(brBlack, body);
|
||||||
//залив корпуса
|
//залив корпуса
|
||||||
Brush br = new SolidBrush(EntityWarPlane.BodyColor);
|
Brush br = new SolidBrush(EntityWarPlane.BodyColor);
|
||||||
g.FillRectangle(br, _startPosX.Value, _startPosY.Value + 60, 100, 20);
|
g.FillRectangle(br, _startPosX.Value, _startPosY.Value + 60, 100, 20);
|
||||||
@ -262,7 +314,18 @@ public class DrawningWarPlane
|
|||||||
g.FillPolygon(br, wingUpper);
|
g.FillPolygon(br, wingUpper);
|
||||||
g.FillPolygon(br, rearWingUpper);
|
g.FillPolygon(br, rearWingUpper);
|
||||||
g.FillPolygon(br, rearWingLower);
|
g.FillPolygon(br, rearWingLower);
|
||||||
|
g.FillPolygon(br, rearWingLower);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g.FillPolygon(brAdd, AddWingUpper);
|
||||||
|
g.FillPolygon(brAdd, AddWingLower);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g.FillPolygon(brAdd, AddWingUpper);
|
||||||
|
g.FillPolygon(brAdd, AddWingLower);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user