Фиксы
This commit is contained in:
parent
ee7a0def18
commit
bc3f888f2f
@ -32,12 +32,66 @@ namespace AirPlaneWithRadar
|
|||||||
}
|
}
|
||||||
public Bitmap MoveObject(Direction direction)
|
public Bitmap MoveObject(Direction direction)
|
||||||
{
|
{
|
||||||
// TODO проверка, что объект может переместится в требуемом направлении
|
|
||||||
if (true)
|
switch (direction)
|
||||||
{
|
{
|
||||||
_drawningObject.MoveObject(direction);
|
case Direction.Up:
|
||||||
}
|
for (int i = 0; i < _map.GetLength(0); i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < _map.GetLength(1); j++)
|
||||||
|
{
|
||||||
|
if (_map[i, j] == _barrier && ((_drawningObject.GetCurrentPosition().Left < i * _size_x && _drawningObject.GetCurrentPosition().Top > i * _size_x) ||
|
||||||
|
(_drawningObject.GetCurrentPosition().Left < i * (_size_x + 1) && _drawningObject.GetCurrentPosition().Top > i * (_size_x + 1))) &&
|
||||||
|
j * (_size_y + 1) < _drawningObject.GetCurrentPosition().Right && _drawningObject.GetCurrentPosition().Right - j * (_size_y + 1) <= _drawningObject.Step)
|
||||||
return DrawMapWithObject();
|
return DrawMapWithObject();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Direction.Down:
|
||||||
|
for (int i = 0; i < _map.GetLength(0); i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < _map.GetLength(1); j++)
|
||||||
|
{
|
||||||
|
if (_map[i, j] == _barrier && ((_drawningObject.GetCurrentPosition().Left < i * _size_x && _drawningObject.GetCurrentPosition().Top > i * _size_x) ||
|
||||||
|
(_drawningObject.GetCurrentPosition().Left < i * (_size_x + 1) && _drawningObject.GetCurrentPosition().Top > i * (_size_x + 1))) &&
|
||||||
|
j * _size_y > _drawningObject.GetCurrentPosition().Bottom && j * _size_y - _drawningObject.GetCurrentPosition().Bottom <= _drawningObject.Step)
|
||||||
|
return DrawMapWithObject();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Direction.Left:
|
||||||
|
for (int i = 0; i < _map.GetLength(0); i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < _map.GetLength(1); j++)
|
||||||
|
{
|
||||||
|
if (_map[i, j] == _barrier && ((_drawningObject.GetCurrentPosition().Right < j * _size_y && _drawningObject.GetCurrentPosition().Bottom > j * _size_y) ||
|
||||||
|
(_drawningObject.GetCurrentPosition().Right < j * (_size_y + 1) && _drawningObject.GetCurrentPosition().Bottom > j * (_size_y + 1))) &&
|
||||||
|
i * (_size_x + 1) < _drawningObject.GetCurrentPosition().Left && _drawningObject.GetCurrentPosition().Left - i * (_size_x + 1) <= _drawningObject.Step)
|
||||||
|
return DrawMapWithObject();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Direction.Right:
|
||||||
|
for (int i = 0; i < _map.GetLength(0); i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < _map.GetLength(1); j++)
|
||||||
|
{
|
||||||
|
if (_map[i, j] == _barrier && ((_drawningObject.GetCurrentPosition().Right < j * _size_y && _drawningObject.GetCurrentPosition().Bottom > j * _size_y) ||
|
||||||
|
(_drawningObject.GetCurrentPosition().Right < j * (_size_y + 1) && _drawningObject.GetCurrentPosition().Bottom > j * (_size_y + 1))) &&
|
||||||
|
i * (_size_x) > _drawningObject.GetCurrentPosition().Top && i * (_size_x) - _drawningObject.GetCurrentPosition().Top <= _drawningObject.Step)
|
||||||
|
return DrawMapWithObject();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
_drawningObject.MoveObject(direction);
|
||||||
|
return DrawMapWithObject();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
private bool SetObjectOnMap()
|
private bool SetObjectOnMap()
|
||||||
{
|
{
|
||||||
@ -48,7 +102,18 @@ namespace AirPlaneWithRadar
|
|||||||
int x = _random.Next(0, 10);
|
int x = _random.Next(0, 10);
|
||||||
int y = _random.Next(0, 10);
|
int y = _random.Next(0, 10);
|
||||||
_drawningObject.SetObject(x, y, _width, _height);
|
_drawningObject.SetObject(x, y, _width, _height);
|
||||||
// TODO првоерка, что объект не "накладывается" на закрытые участки
|
if (_drawningObject is DrawingObjectPlane)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < _map.GetLength(0); i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < _map.GetLength(1); j++)
|
||||||
|
{
|
||||||
|
if (_map[i, j] == _barrier && _drawningObject.GetCurrentPosition().Left < i * _size_x && _drawningObject.GetCurrentPosition().Right < j * _size_y && _drawningObject.GetCurrentPosition().Top > i * _size_x && _drawningObject.GetCurrentPosition().Bottom > j * _size_y)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
private Bitmap DrawMapWithObject()
|
private Bitmap DrawMapWithObject()
|
||||||
|
@ -6,11 +6,11 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AirPlaneWithRadar
|
namespace AirPlaneWithRadar
|
||||||
{
|
{
|
||||||
internal class DrawingObject : IDrawingObject
|
internal class DrawingObjectPlane : IDrawingObject
|
||||||
{
|
{
|
||||||
private DrawingPlain _plain;
|
private DrawingPlain _plain;
|
||||||
|
|
||||||
public DrawingObject(DrawingPlain plain)
|
public DrawingObjectPlane(DrawingPlain plain)
|
||||||
{
|
{
|
||||||
_plain = plain;
|
_plain = plain;
|
||||||
}
|
}
|
||||||
@ -19,7 +19,7 @@ namespace AirPlaneWithRadar
|
|||||||
|
|
||||||
public void DrawningObject(Graphics g)
|
public void DrawningObject(Graphics g)
|
||||||
{
|
{
|
||||||
//TODO
|
_plain?.DrawTransoprt(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
|
public (float Left, float Right, float Top, float Bottom) GetCurrentPosition()
|
@ -23,7 +23,7 @@ namespace AirPlaneWithRadar
|
|||||||
toolStripStatusLabelSpeed.Text = $"Скорость: {plain.Plain.Speed}";
|
toolStripStatusLabelSpeed.Text = $"Скорость: {plain.Plain.Speed}";
|
||||||
toolStripStatusLabelWeight.Text = $"Вес: {plain.Plain.Weight}";
|
toolStripStatusLabelWeight.Text = $"Вес: {plain.Plain.Weight}";
|
||||||
toolStripStatusLabelColor.Text = $"Цвет: {plain.Plain.BodyColor.Name}";
|
toolStripStatusLabelColor.Text = $"Цвет: {plain.Plain.BodyColor.Name}";
|
||||||
pictureBoxPlain.Image = _abstractMap.CreateMap(pictureBoxPlain.Width, pictureBoxPlain.Height,new DrawingObject(plain)) ;
|
pictureBoxPlain.Image = _abstractMap.CreateMap(pictureBoxPlain.Width, pictureBoxPlain.Height,new DrawingObjectPlane(plain)) ;
|
||||||
}
|
}
|
||||||
private void ButtonCreate_Click(object sender, EventArgs e)
|
private void ButtonCreate_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user