This commit is contained in:
Alenka 2023-10-12 18:50:26 +04:00
parent 929e314196
commit 5543d1951e
3 changed files with 24 additions and 46 deletions

View File

@ -46,7 +46,7 @@ namespace Cruiser.DrawningObjects
/// <param name="bodyColor">Цвет кузова</param> /// <param name="bodyColor">Цвет кузова</param>
/// <param name="width">Ширина картинки</param> /// <param name="width">Ширина картинки</param>
/// <param name="height">Высота картинки</param> /// <param name="height">Высота картинки</param>
/// <returns>true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах</returns>
public DrawningCruiser(int speed, double weight, Color bodyColor, int width, int height) public DrawningCruiser(int speed, double weight, Color bodyColor, int width, int height)
{ {
if (width < _cruiserWidth || height < _cruiserHeight) if (width < _cruiserWidth || height < _cruiserHeight)
@ -87,67 +87,42 @@ width, int height, int carWidth, int carHeight)
/// <param name="y">Координата Y</param> /// <param name="y">Координата Y</param>
public void SetPosition(int x, int y) public void SetPosition(int x, int y)
{ {
if (EntityCruiser == null) return; if (x < 0 || x >= _pictureWidth || y < 0 || y >= _pictureHeight)
while (x + _cruiserWidth > _pictureWidth)
{ {
x -= (int)EntityCruiser.Step; _startPosX = 0;
_startPosY = 0;
} }
while (x < 0)
{
x += (int)EntityCruiser.Step;
}
while (y + _cruiserHeight > _pictureHeight)
{
y -= (int)EntityCruiser.Step;
}
while (y < 0)
{
y += (int)EntityCruiser.Step;
}
_startPosX = x; _startPosX = x;
_startPosY = y; _startPosY = y;
} }
/// <param name="direction">Направление</param> /// <param name="direction">Направление</param>
public void MoveTransport(Direction direction) public void MoveTransport(Direction direction)
{ {
if (EntityCruiser == null) if (!CanMove(direction) || EntityCruiser == null)
{ {
return; return;
} }
switch (direction) switch (direction)
{ {
//влево
case Direction.Left: case Direction.Left:
if (_startPosX - EntityCruiser.Step > 0) _startPosX -= (int)EntityCruiser.Step;
{
_startPosX -= (int)EntityCruiser.Step;
}
break; break;
//вверх
case Direction.Up: case Direction.Up:
if (_startPosY - EntityCruiser.Step > 0) _startPosY -= (int)EntityCruiser.Step;
{
_startPosY -= (int)EntityCruiser.Step;
}
break; break;
// вправо
case Direction.Right: case Direction.Right:
if (_startPosX + EntityCruiser.Step + _cruiserWidth < _pictureWidth) _startPosX += (int)EntityCruiser.Step;
{ break;
_startPosX += (int)EntityCruiser.Step; //вниз
} case Direction.Down:
_startPosY += (int)EntityCruiser.Step;
break; break;
case Direction.Down:
if (_startPosY + EntityCruiser.Step + _cruiserHeight < _pictureHeight)
{
_startPosY += (int)EntityCruiser.Step;
}
break;
} }

View File

@ -10,7 +10,7 @@ namespace Cruiser.MovementStrategy
{ {
internal class DrawningObjectCar : IMoveableObject internal class DrawningObjectCar : IMoveableObject
{ {
private readonly DrawningPro? _drawningCar = null; private readonly DrawningCruiser? _drawningCar = null;
public DrawningObjectCar(DrawningPro drawningCar) public DrawningObjectCar(DrawningPro drawningCar)
{ {
_drawningCar = drawningCar; _drawningCar = drawningCar;

View File

@ -1,6 +1,6 @@
using System.Windows.Forms; using System.Windows.Forms;
using Cruiser.DrawningObjects; using Cruiser.DrawningObjects;
using Cruiser.Entities;
using Cruiser.MovementStrategy; using Cruiser.MovementStrategy;
namespace Cruiser namespace Cruiser
@ -8,7 +8,8 @@ namespace Cruiser
public partial class CruiserForm : Form public partial class CruiserForm : Form
{ {
private DrawningPro? _drawningCruiser; private DrawningCruiser? _drawningCruiser;
private AbstractStrategy? _abstractStrategy; private AbstractStrategy? _abstractStrategy;
public CruiserForm() public CruiserForm()
{ {
@ -61,11 +62,13 @@ namespace Cruiser
_drawningCruiser.SetPosition(random.Next(10, 100), random.Next(10, _drawningCruiser.SetPosition(random.Next(10, 100), random.Next(10,
100)); 100));
Draw(); Draw();
} }
private void ButtonStep_Click(object sender, EventArgs e)
private void ButtonStep_Click(object sender, EventArgs e)
{ {
if (_drawningCruiser == null) if (_drawningCruiser == null)
{ {