Пример #1
0
        /// <summary>Создаёт объект</summary>
        /// <param name="image">Изображение объекта</param>
        /// <param name="collision_type">Тип столкновения с данным объектом</param>
        protected DungeonObject(Bitmap image, DungeonObjectCollision collision_type)
            : base()
        {
            m_image            = image;
            m_size             = image.Size;
            m_collision_type   = collision_type;
            m_collision_size   = m_size;
            m_collision_offset = new Point(0, 0);

            DungeonLevel = null;
            m_location   = new DungeonPoint(0, 0);
            ObjectStatus = DungeonObjectStatus.CreatedNotAdded;
        }
Пример #2
0
 /// <summary>Рисует объект, проверяя, что он создан, но не уничтожен</summary>
 /// <param name="player_location">Координаты игрока (персонаж игрока находится в центре экрана)</param>
 public bool Paint(object sender, PaintEventArgs e, Point player_location, Size showing_size)
 {
     if (ObjectStatus == DungeonObjectStatus.AddedNotDestroyed)
     {
         Size  form_size       = ((MainForm)sender).Size;
         Point center_screen   = new Point(((MainForm)sender).ClientSize.Width / 2, ((MainForm)sender).ClientSize.Height / 2);
         Point screen_location = new DungeonPoint(Location.X - player_location.X + form_size.Width / 2 - Size.Width / 2, Location.Y - player_location.Y + form_size.Height / 2 - Size.Height / 2).Point;
         if (IsInView(screen_location, center_screen, showing_size))
         {
             e.Graphics.DrawImage(m_image, screen_location);
             return(true);
         }
     }
     return(false);
 }
Пример #3
0
 /// <summary>Задаёт координаты (центр) объекта</summary>
 /// <param name="x">X-координата</param>
 /// <param name="y">Y-координата</param>
 public void SetLocation(double x, double y = 0)
 {
     Location = new DungeonPoint(x, y);
 }
Пример #4
0
 /// <summary>Возвращает расстояние от этой точки до заданной</summary>
 /// <param name="point">Вторая точка</param>
 /// <returns>Расстояние между точками</returns>
 public double GetLengthTo(DungeonPoint point)
 {
     return(Math.Sqrt(Math.Pow(X - point.X, 2) + Math.Pow(Y - point.Y, 2)));
 }