1
This commit is contained in:
parent
c055849b12
commit
f677a3d244
73
ProjectTank/ProjectTank/Drawning/DrawningBattleTank.cs.orig
Normal file
73
ProjectTank/ProjectTank/Drawning/DrawningBattleTank.cs.orig
Normal file
@ -0,0 +1,73 @@
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
using ProjectTank.Entities;
|
||||
>>>>>>> 6b2dbf2 (LabWork_2)
|
||||
|
||||
namespace ProjectTank.Drawning;
|
||||
/// <summary>
|
||||
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
|
||||
/// </summary>
|
||||
public class DrawningBattleTank :DrawningTank
|
||||
{
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// <summary>
|
||||
/// <param name="speed">Скорость</param>
|
||||
<<<<<<< HEAD
|
||||
/// <param name="weight">Вес</param>
|
||||
=======
|
||||
/// <param name="weight">Вес автомобиля</param>
|
||||
>>>>>>> 6b2dbf2 (LabWork_2)
|
||||
/// <param name="bodyColor">Основной цвет</param>
|
||||
/// <param name="additionalColor">Дополнительный цвет</param>
|
||||
/// <param name="gun">Признак наличия пушки</param>
|
||||
/// <param name="machinGun">признак наличия пулемета</param>
|
||||
///
|
||||
public DrawningBattleTank(int speed, double weight, Color bodyColor, Color additionalColor, bool gun, bool machinGun) : base(150, 87)
|
||||
{
|
||||
EntityTank = new EntityBattleTank(speed, weight, bodyColor, additionalColor, gun, machinGun);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Прорисовка объекта
|
||||
/// </summary>
|
||||
/// <param name="g"></param>
|
||||
public override void DrawTransport(Graphics g)
|
||||
{
|
||||
if (EntityTank == null || EntityTank is not EntityBattleTank battleTank || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Pen pen = new(Color.Black);
|
||||
Brush additionalBrush = new SolidBrush(battleTank.AdditionalColor);
|
||||
|
||||
if (battleTank.Gun)
|
||||
{
|
||||
g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 30, 45, 5);
|
||||
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value, _startPosY.Value + 30, 45, 5);
|
||||
}
|
||||
|
||||
//пулемет
|
||||
if (battleTank.MachinGun)
|
||||
{
|
||||
g.DrawRectangle(pen, _startPosX.Value + 65, _startPosY.Value + 15, 16, 5);
|
||||
g.DrawRectangle(pen, _startPosX.Value + 72, _startPosY.Value + 10, 5, 5);
|
||||
g.DrawRectangle(pen, _startPosX.Value + 71, _startPosY.Value + 3, 7, 7);
|
||||
g.DrawRectangle(pen, _startPosX.Value + 55, _startPosY.Value + 5, 15, 3);
|
||||
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value + 65, _startPosY.Value + 15, 16, 5);
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value + 72, _startPosY.Value + 10, 5, 5);
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value + 71, _startPosY.Value + 3, 7, 7);
|
||||
g.FillRectangle(additionalBrush, _startPosX.Value + 55, _startPosY.Value + 5, 15, 3);
|
||||
}
|
||||
_startPosY += 20;
|
||||
base.DrawTransport(g);
|
||||
_startPosY -= 20;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
56
ProjectTank/ProjectTank/Entities/EntityTank.cs.orig
Normal file
56
ProjectTank/ProjectTank/Entities/EntityTank.cs.orig
Normal file
@ -0,0 +1,56 @@
|
||||
<<<<<<< HEAD
|
||||
namespace ProjectTank.Entities
|
||||
=======
|
||||
namespace ProjectTank.Entities
|
||||
>>>>>>> 6b2dbf2 (LabWork_2)
|
||||
{
|
||||
public class EntityTank
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Скорость
|
||||
/// </summary>
|
||||
public int Speed { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Вес
|
||||
/// </summary>
|
||||
public double Weight { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Основной цвет
|
||||
/// </summary>
|
||||
public Color BodyColor { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Шаг перемещения танка
|
||||
/// </summary>
|
||||
public double Step => Speed * 100 / Weight;
|
||||
<<<<<<< HEAD
|
||||
public void SetBodyColor(Color color)
|
||||
{
|
||||
BodyColor = color;
|
||||
}
|
||||
=======
|
||||
>>>>>>> 6b2dbf2 (LabWork_2)
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор сущности
|
||||
/// </summary>
|
||||
/// <param name="speed">Скорость</param>
|
||||
<<<<<<< HEAD
|
||||
/// <param name="weight">Веc</param>
|
||||
=======
|
||||
/// <param name="weight">Вес автомобиля</param>
|
||||
>>>>>>> 6b2dbf2 (LabWork_2)
|
||||
/// <param name="bodyColor">Основной цвет</param>
|
||||
|
||||
public EntityTank(int speed, double weight, Color bodyColor)
|
||||
{
|
||||
Speed = speed;
|
||||
Weight = weight;
|
||||
BodyColor = bodyColor;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
52
ProjectTank/ProjectTank/Entities/EntiyBattleTank.cs.orig
Normal file
52
ProjectTank/ProjectTank/Entities/EntiyBattleTank.cs.orig
Normal file
@ -0,0 +1,52 @@
|
||||
using ProjectTank.Entities;
|
||||
|
||||
namespace ProjectTank
|
||||
{
|
||||
/// <summary>
|
||||
/// Класс-сущность танк
|
||||
/// </summary>
|
||||
public class EntityBattleTank : EntityTank
|
||||
|
||||
{
|
||||
/// <summary>
|
||||
/// Дополнительный цвет (для опциональных элементов)
|
||||
/// </summary>
|
||||
public Color AdditionalColor { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Признак (опция) наличия пушки
|
||||
/// </summary>
|
||||
public bool Gun { get; private set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Признак (опция) наличия Пулемета на башне
|
||||
/// /// </summary>
|
||||
public bool MachinGun { get; private set; }
|
||||
|
||||
<<<<<<< HEAD
|
||||
public void SetAdditionalColor(Color addColor)
|
||||
{
|
||||
AdditionalColor = addColor;
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> 6b2dbf2 (LabWork_2)
|
||||
/// <summary>
|
||||
/// Конструктор объекта-класса Боевого Танка
|
||||
/// </summary>
|
||||
/// <param name="speed">Скорость</param>
|
||||
/// <param name="weight">Вес</param>
|
||||
/// <param name="bodyColor">Основной цвет</param>
|
||||
/// <param name="additionalColor">Дополнительный цвет</param>
|
||||
/// <param name="gun">Пушка танка</param>
|
||||
/// <param name="machinGun">Пклемет на башне</param>
|
||||
public EntityBattleTank(int speed, double weight, Color bodyColor, Color additionalColor, bool gun, bool machinGun) : base(speed, weight, bodyColor)
|
||||
{
|
||||
AdditionalColor = additionalColor;
|
||||
MachinGun= machinGun;
|
||||
Gun = gun;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
using ProjectTank.Drawning;
|
||||
|
||||
namespace ProjectTank.MovementStrategy
|
||||
{
|
||||
public class MoveableTank : IMoveableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Поле-объект класса или его DrawningTank наследника
|
||||
/// </summary>
|
||||
private readonly DrawningTank? _tank = null;
|
||||
/// <summary>
|
||||
<<<<<<< HEAD
|
||||
/// конструктор
|
||||
/// </summary>
|
||||
/// <param name="tank">Объект класса DrawningTank</param>
|
||||
=======
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="car">Объект класса DrawningBoat</param>
|
||||
>>>>>>> 6b2dbf2 (LabWork_2)
|
||||
public MoveableTank(DrawningTank tank)
|
||||
{
|
||||
_tank = tank;
|
||||
}
|
||||
public ObjectParameters? GetObjectPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_tank == null || _tank.EntityTank == null ||
|
||||
!_tank.GetPosX.HasValue || !_tank.GetPosY.HasValue)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new ObjectParameters(_tank.GetPosX.Value,
|
||||
_tank.GetPosY.Value, _tank.GetWidth, _tank.GetHeight);
|
||||
}
|
||||
}
|
||||
public int GetStep => (int)(_tank?.EntityTank?.Step ?? 0);
|
||||
public bool TryMoveObject(MovementDirection direction)
|
||||
{
|
||||
if (_tank == null || _tank.EntityTank == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _tank.MoveTransport(GetDirectionType(direction));
|
||||
}
|
||||
/// <summary>
|
||||
/// Конвертация из MovementDirection в DirectionType
|
||||
/// </summary>
|
||||
/// <param name="direction">MovementDirection</param>
|
||||
/// <re turns>DirectionType</returns>
|
||||
private static DirectionType GetDirectionType(MovementDirection direction)
|
||||
{
|
||||
return direction switch
|
||||
{
|
||||
MovementDirection.Left => DirectionType.Left,
|
||||
MovementDirection.Right => DirectionType.Right,
|
||||
MovementDirection.Up => DirectionType.Up,
|
||||
MovementDirection.Down => DirectionType.Down,
|
||||
_ => DirectionType.Unknow,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user