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