Закончил логику в SetPosition

This commit is contained in:
Cat-pranks 2024-02-12 18:48:11 +08:00
parent 9bf2ee06c2
commit 2c774e7f39

View File

@ -81,56 +81,44 @@ public class DrawningAccordionBus
public void SetPosition(int x, int y) public void SetPosition(int x, int y)
{ {
if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) if (!_pictureHeight.HasValue || !_pictureWidth.HasValue)
{
return; return;
} if (x > 0 && y > 0 && x + _drawningAccordionBusWidth < _pictureWidth && y + _drawningAccordionBusHeight < _pictureHeight)
if (x > 0 && y > 0 && x+_drawningAccordionBusWidth < _pictureWidth && y+_drawningAccordionBusHeight < _pictureHeight)
{ {
_startPosX = x; _startPosX = x;
_startPosY = y; _startPosY = y;
} }
else else
{ {
_startPosX = _pictureWidth.Value-_drawningAccordionBusWidth; Random rnd = new Random();
_startPosY = _pictureHeight.Value-_drawningAccordionBusHeight; _startPosX = rnd.Next(0, _pictureWidth.Value - _drawningAccordionBusWidth);
_startPosY = rnd.Next(0, _pictureHeight.Value - _drawningAccordionBusHeight);
} }
} }
public bool MoveTransport(DirectionType direction) public bool MoveTransport(DirectionType direction)
{ {
if (EntityAccordionBus == null || !_startPosX.HasValue || if (EntityAccordionBus == null || !_startPosX.HasValue || !_startPosY.HasValue)
!_startPosY.HasValue)
{
return false; return false;
}
switch (direction) switch (direction)
{ {
//влево //влево
case DirectionType.Left: case DirectionType.Left:
if (_startPosX.Value - EntityAccordionBus.Step > 0) if (_startPosX.Value - EntityAccordionBus.Step > 0)
{
_startPosX -= (int)EntityAccordionBus.Step; _startPosX -= (int)EntityAccordionBus.Step;
}
return true; return true;
//вверх //вверх
case DirectionType.Up: case DirectionType.Up:
if (_startPosY.Value - EntityAccordionBus.Step > 0) if (_startPosY.Value - EntityAccordionBus.Step > 0)
{
_startPosY -= (int)EntityAccordionBus.Step; _startPosY -= (int)EntityAccordionBus.Step;
}
return true; return true;
// вправо // вправо
case DirectionType.Right: case DirectionType.Right:
if(_startPosX.Value + _drawningAccordionBusWidth < _pictureWidth) if(_startPosX.Value + _drawningAccordionBusWidth < _pictureWidth)
{
_startPosX += (int)EntityAccordionBus.Step; _startPosX += (int)EntityAccordionBus.Step;
}
return true; return true;
//вниз //вниз
case DirectionType.Down: case DirectionType.Down:
if (_startPosY.Value + _drawningAccordionBusHeight < _pictureHeight) if (_startPosY.Value + _drawningAccordionBusHeight < _pictureHeight)
{
_startPosY += (int)EntityAccordionBus.Step; _startPosY += (int)EntityAccordionBus.Step;
}
return true; return true;
default: default:
return false; return false;
@ -144,9 +132,7 @@ public class DrawningAccordionBus
{ {
if (EntityAccordionBus == null || !_startPosX.HasValue || if (EntityAccordionBus == null || !_startPosX.HasValue ||
!_startPosY.HasValue) !_startPosY.HasValue)
{
return; return;
}
//кузов //кузов
Brush br = new SolidBrush(EntityAccordionBus.BodyColor); Brush br = new SolidBrush(EntityAccordionBus.BodyColor);
g.FillRectangle(br,_startPosX.Value, _startPosY.Value, 100, 30); g.FillRectangle(br,_startPosX.Value, _startPosY.Value, 100, 30);