Compare commits

...

3 Commits

7 changed files with 18 additions and 51 deletions

View File

@ -22,7 +22,7 @@ namespace AirBomber
/// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param>
public DrawningAirBomber(int speed, double weight, Color bodyColor, Color
additionalColor, bool bombs, Color bombsColor, bool fuelTanks, int width, int height) :
additionalColor, bool bombs, Color bombsColor, bool fuelTanks, int width, int height) :
base(speed, weight, bodyColor, width, height, 160, 118)
{
@ -42,14 +42,12 @@ namespace AirBomber
Brush bombsColor = new SolidBrush(airBomber.BombsColor);
base.DrawPlane(g);
// обвесы
g.FillEllipse(bombsColor, _startPosX + 90, _startPosY + 20, 15, 29);
g.DrawEllipse(pen, _startPosX + 90, _startPosY + 20, 15, 29);
g.FillEllipse(bombsColor, _startPosX + 90, _startPosY + 70, 15, 29);
g.DrawEllipse(pen, _startPosX + 90, _startPosY + 70, 15, 29);
g.FillEllipse(bombsColor, _startPosX + 140, _startPosY + 50, 15, 15);
g.DrawEllipse(pen, _startPosX + 140, _startPosY + 50, 15, 15);
// fueltanks
g.FillRectangle(additionalBrush, _startPosX + 63, _startPosY + 34, 20, 15);
g.DrawRectangle(pen, _startPosX + 63, _startPosY + 34, 20, 15);

View File

@ -81,6 +81,14 @@ namespace AirBomber
public void SetPosition(int x, int y)
{
// TODO: Изменение x, y, если при установке объект выходит за границы
if (x < 0 || x + _airPlaneWidth > _pictureWidth)
{
x = _pictureWidth - _airPlaneWidth;
}
if (y < 0 || y + _airPlaneHeight > _pictureHeight)
{
y = _pictureHeight - _airPlaneHeight;
}
_startPosX = x;
_startPosY = y;
}
@ -88,44 +96,6 @@ namespace AirBomber
/// Изменение направления перемещения
/// </summary>
/// <param name="direction">Направление</param>
public void MoveTransport(DirectionType direction)
{
if (EntityAirPlane == null)
{
return;
}
switch (direction)
{
//влево
case DirectionType.Left:
if (_startPosX - EntityAirPlane.Step > 0)
{
_startPosX -= (int)EntityAirPlane.Step;
}
break;
//вверх
case DirectionType.Up:
if (_startPosY - EntityAirPlane.Step > 0)
{
_startPosY -= (int)EntityAirPlane.Step;
}
break;
// вправо
case DirectionType.Right:
if (_startPosX + EntityAirPlane.Step + _airPlaneWidth < _pictureWidth)
{
_startPosX += (int)EntityAirPlane.Step;
}
break;
//вниз
case DirectionType.Down:
if (_startPosY + EntityAirPlane.Step + _airPlaneHeight < _pictureHeight)
{
_startPosY += (int)EntityAirPlane.Step;
}
break;
}
}
/// <summary>
/// Прорисовка объекта
/// </summary>
@ -255,9 +225,9 @@ namespace AirBomber
//вверх
DirectionType.Up => _startPosY - EntityAirPlane.Step > 0,
// вправо
DirectionType.Right => _startPosX + EntityAirPlane.Step < _pictureWidth,
DirectionType.Right => _startPosX + EntityAirPlane.Step + _airPlaneWidth < _pictureWidth,
//вниз
DirectionType.Down => _startPosY + EntityAirPlane.Step < _pictureHeight,
DirectionType.Down => _startPosY + EntityAirPlane.Step + _airPlaneHeight < _pictureHeight,
_ => false,
};
}

View File

@ -30,6 +30,6 @@ namespace AirBomber
public bool CheckCanMove(DirectionType direction) =>
_drawningAirPlane?.CanMove(direction) ?? false;
public void MoveObject(DirectionType direction) =>
_drawningAirPlane?.MoveTransport(direction);
_drawningAirPlane?.MovePlane(direction);
}
}

View File

@ -114,7 +114,7 @@
comboBoxStrategy.Anchor = AnchorStyles.Top | AnchorStyles.Right;
comboBoxStrategy.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxStrategy.FormattingEnabled = true;
comboBoxStrategy.Items.AddRange(new object[] { "MoveToCenter", "MoveToRightEdge" });
comboBoxStrategy.Items.AddRange(new object[] { "MoveToCenter", "MoveToBorder" });
comboBoxStrategy.Location = new Point(755, 26);
comboBoxStrategy.Name = "comboBoxStrategy";
comboBoxStrategy.Size = new Size(219, 33);

View File

@ -55,16 +55,16 @@
switch (name)
{
case "buttonUp":
_drawningAirPlane.MoveTransport(DirectionType.Up);
_drawningAirPlane.MovePlane(DirectionType.Up);
break;
case "buttonDown":
_drawningAirPlane.MoveTransport(DirectionType.Down);
_drawningAirPlane.MovePlane(DirectionType.Down);
break;
case "buttonLeft":
_drawningAirPlane.MoveTransport(DirectionType.Left);
_drawningAirPlane.MovePlane(DirectionType.Left);
break;
case "buttonRight":
_drawningAirPlane.MoveTransport(DirectionType.Right);
_drawningAirPlane.MovePlane(DirectionType.Right);
break;
}
Draw();

View File

@ -27,6 +27,5 @@ namespace AirBomber
/// </summary>
/// <param name="direction">Направление</param>
void MoveObject(DirectionType direction);
}
}

View File

@ -21,7 +21,7 @@ namespace AirBomber
var objParams = GetObjectParameters;
if (objParams == null) return;
if (objParams.RightBorder < FieldWidth - GetStep()) MoveRight();
if (objParams.DownBorder < FieldHeight - GetStep()) MoveDown();
}
}
}