accepted lab

This commit is contained in:
ZakenChannel 2024-02-13 16:02:11 +04:00
parent dfffe57fe3
commit 11988efcd0
3 changed files with 35 additions and 32 deletions

View File

@ -63,10 +63,6 @@ public class DrawningAirFighter
EntityAirFighter = new EntityAirFighter();
EntityAirFighter.Init(speed, weight, bodyColor, additionalColor,
bodyRockets, additionalWings);
//_pictureWidth = null;
//_pictureHeight = null;
//_startPosX = null;
//_startPosY = null;
}
/// <summary>
@ -75,43 +71,51 @@ public class DrawningAirFighter
/// <param name="width">Ширина поля</param>
/// <param name="height">Высота поля</param>
/// <returns>true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах</returns>
public void SetPictureSize(int width, int height)
public Boolean SetPictureSize(int width, int height)
{
if (width <= _drawningAirFighterWidth || height <= _drawningAirFighterHeight) return false;
_pictureWidth = width;
_pictureHeight = height;
if (_pictureWidth <= _drawningAirFighterWidth || _pictureHeight <= _drawningAirFighterHeight)
if (_startPosX.HasValue && _startPosY.HasValue)
{
_pictureWidth = null;
_pictureHeight = null;
return;
if (_startPosX + _drawningAirFighterWidth > _pictureWidth)
{
_startPosX = _pictureWidth.Value - _drawningAirFighterWidth;
}
if (_startPosY + _drawningAirFighterHeight > _pictureHeight)
{
_startPosY = _pictureHeight.Value - _drawningAirFighterHeight;
}
}
if (_startPosX + _drawningAirFighterWidth > _pictureWidth)
{
_startPosX = _pictureWidth.Value - _drawningAirFighterWidth;
}
if (_startPosY + _drawningAirFighterHeight > _pictureHeight)
{
_startPosY = _pictureHeight.Value - _drawningAirFighterHeight;
}
return true;
}
/// <summary>
/// Установка позиции
/// </summary>
/// <param name="x">Координата X</param>
/// <param name="y">Координата Y</param>
public void SetPosition(int x, int y, int width, int height)
public void SetPosition(int x, int y)
{
//if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) return;
if (width < _drawningAirFighterWidth || height < _drawningAirFighterHeight) return;
if (x + _drawningAirFighterWidth > width || x < 0) return;
if (y + _drawningAirFighterHeight > height || y < 0) return;
if (!_pictureHeight.HasValue || !_pictureWidth.HasValue)
{
return;
}
_startPosX = x;
_startPosY = y;
_pictureWidth = width;
_pictureHeight = height;
if (_drawningAirFighterHeight + y > _pictureHeight || y < 0)
{
_startPosY = 0;
}
if (_drawningAirFighterWidth + x > _pictureWidth || x < 0)
{
_startPosX = 0;
}
return;
}
/// <summary>
/// Изменение направления перемещения
/// </summary>

View File

@ -33,19 +33,18 @@ public class EntityAirFighter
/// </summary>
public bool AdditionalWings { get; private set; }
/// <summary>
/// Шаг перемещения автомобиля
/// Шаг перемещения истребителя
/// </summary>
public double Step => Speed * 100 / Weight;
/// <summary>
/// Инициализация полей объекта-класса спортивного автомобиля
/// Инициализация полей объекта-класса истребителя
/// </summary>
/// <param name="speed">Скорость</param>
/// <param name="weight">Вес автомобиля</param>
/// <param name="weight">Вес истребителя</param>
/// <param name="bodyColor">Основной цвет</param>
/// <param name="additionalColor">Дополнительный цвет</param>
/// <param name="bodyRockets">Признак наличия обвеса</param>
/// <param name="additionalWings">Признак наличия антикрыла</param>
/// <param name="sportLine">Признак наличия гоночной полосы</param>
/// <param name="bodyRockets">Признак наличия ракет</param>
/// <param name="additionalWings">Признак наличия дополнительных крыльев</param>
public void Init(int speed, double weight, Color bodyColor, Color
additionalColor, bool bodyRockets, bool additionalWings)
{

View File

@ -48,8 +48,8 @@ public partial class FormAirFighter : Form
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)));
//_drawningAirFighter.SetPictureSize(pictureBoxAirFighter.Width, pictureBoxAirFighter.Height);
_drawningAirFighter.SetPosition(random.Next(10, 100), random.Next(10, 100), pictureBoxAirFighter.Width, pictureBoxAirFighter.Height);
_drawningAirFighter.SetPictureSize(pictureBoxAirFighter.Width, pictureBoxAirFighter.Height);
_drawningAirFighter.SetPosition(random.Next(10, 100), random.Next(10, 100));
Draw();
}