ВУЗ:
Составители:
Рубрика:
52
/// <summary>
/// Хранит относительное положение центра спрайта.
/// </summary>
Size centerOffset;
/// <summary>
/// Хранит абсолютное положение центра спрайта.
/// </summary>
Point center;
/// <summary>
/// Возвращает положение центра спрайта.
/// </summary>
public Point Center { get { return center; } }
/// <summary>
/// Инициализирует экземпляр объекта класса TracedSprite.
/// </summary>
/// <param name="SpriteRect">
/// Прямоугольник спрайта.
/// <param name="sprites">
/// Список спрайтов, которому принадлежит создаваемый экземпляр.
/// </param>
internal TracedSprite(Rectangle SpriteRect, SpriteList sprites) : base(SpriteRect, sprites)
{
if (!(Sprites is TracedSpriteList))
throw (new ArgumentException("Спрайт со следом может быть" +
" только членом списка - наследника TracedSpriteList!"));
centerOffset = new Size(SpriteSize.Width / 2, SpriteSize.Height / 2);
center = Location + centerOffset;
}
/// <summary>
/// Перемещает спрайт на плоскости XY.
/// </summary>
/// <param name="drift">
/// Вектор смещения.
/// </param>
/// <returns>
/// true, если перемещение произошло, и false, если нет.
/// </returns>
public override bool Move(Size drift)
{
if (Visible && Traced) PutTrace();
bool result = base.Move(drift);
if (result) center = Location + centerOffset;
return result;
}
/// <summary>
/// Изображает след спрайта.
/// </summary>