Лабораторная работа №1
This commit is contained in:
parent
cd590393be
commit
d7b2497caa
@ -67,7 +67,19 @@ public class DrawingCruiser
|
||||
/// <returns></returns>
|
||||
public bool SetPictureSize(int width, int height)
|
||||
{
|
||||
//TODO проверка, что объект влезает в границы поля
|
||||
if (_pictureWidth < _drawingCruiserWidth || _pictureHeight < _drawingCruiserHeight)
|
||||
{
|
||||
if (_startPosX != null && _startPosY != null)
|
||||
{
|
||||
if (width < 0) width = 0;
|
||||
else if (_startPosX + _drawingCruiserWidth > width) _startPosX = width - _drawingCruiserWidth;
|
||||
if (height < 0) height = 0;
|
||||
else if (_startPosY + _drawingCruiserHeight > height) _startPosY = height - _drawingCruiserHeight;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO проверка, что объект "влезает" в размеры поля
|
||||
// если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена
|
||||
_pictureHeight = height;
|
||||
_pictureWidth = width;
|
||||
return true;
|
||||
@ -80,15 +92,31 @@ public class DrawingCruiser
|
||||
/// <param name="y"></param>
|
||||
public void SetPosition(int x, int y)
|
||||
{
|
||||
_startPosX = x;
|
||||
_startPosY = y;
|
||||
if (!_pictureHeight.HasValue || !_pictureWidth.HasValue)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (_startPosX + _drawingCruiserWidth > _pictureWidth)
|
||||
{
|
||||
_startPosX = _pictureWidth - _drawingCruiserWidth;
|
||||
}
|
||||
else if (_startPosX < 0)
|
||||
{
|
||||
_startPosX = 0;
|
||||
}
|
||||
if (_startPosY + _drawingCruiserHeight > _pictureHeight)
|
||||
{
|
||||
_startPosY = _pictureHeight - _drawingCruiserHeight;
|
||||
}
|
||||
|
||||
else if (_startPosY < 0)
|
||||
{
|
||||
_startPosY = 0;
|
||||
}
|
||||
//TODO если при установке объекта в эти координаты, он будет выходить за границы поля,
|
||||
//то нужно изменить координаты, чтобы он остался в нужных размерах
|
||||
_startPosX = x;
|
||||
_startPosY = y;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -30,7 +30,7 @@ public partial class FormCruiser : Form
|
||||
Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
|
||||
Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)));
|
||||
_drawingCruiser.SetPictureSize(pictureBoxCruiser.Width, pictureBoxCruiser.Height);
|
||||
_drawingCruiser.SetPosition(random.Next(10, 100), random.Next(10, 100));
|
||||
_drawingCruiser.SetPosition(random.Next(pictureBoxCruiser.Right - 200, pictureBoxCruiser.Right - 160), random.Next(pictureBoxCruiser.Bottom - 150, pictureBoxCruiser.Bottom - 100));
|
||||
Draw();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user