예제 #1
0
        public static CollisionBoxComponent CheckForSpecificCollision(CollisionBoxComponent entity, short collisionID, CollisionBoxComponent ignore)
        {
            foreach (CollisionBoxComponent colBox in collisionLists[collisionID])
            {
                if (entity.Intersects(colBox) && colBox != ignore && colBox != entity)
                    return colBox;
            }

            return null;
        }
예제 #2
0
        public static CollisionBoxComponent CheckForCollision(CollisionBoxComponent entity, CollisionBoxComponent ignore)
        {
            foreach (short colType in entity.CollisionType.CollidingIDs)
            {
                CollisionBoxComponent colbox = CheckForSpecificCollision(entity, colType, ignore);
                if (colbox != null)
                    return colbox;
            }

            return null;
        }
예제 #3
0
 /// <summary>
 /// Check to see whether the object intersects another
 /// </summary>
 public bool Intersects(CollisionBoxComponent value)
 {
     Vector2[] itsCorners = value.BoundingCorners;
     Vector2[] myCorners = BoundingCorners;
     for (int i = 0; i < 4; i++)
     {
         if (PointIsInBoundingBox(itsCorners[i]))
             return true;
         if (value.PointIsInBoundingBox(myCorners[i]))
             return true;
     }
     return false;
 }
예제 #4
0
        /// <summary>
        /// Clone object
        /// </summary>
        public object Clone()
        {
            CollisionBoxComponent clone = new CollisionBoxComponent();

            clone.connectedGameObject = connectedGameObject;
            clone.Position = Position;
            clone.Rotation = Rotation;
            clone.Scale = Scale;
            clone.Origin = origin;
            clone.Width = Width;
            clone.Height = Height;

            return clone;
        }
예제 #5
0
        /// <summary>
        /// Retrives are drawable rectangle from the bounds of the collision box with scaling applied
        /// </summary>
        /// <param name="entity"></param>
        /// <returns>Rectangle</returns>
        public static Rectangle CollisionEntityToRectScaled(CollisionBoxComponent entity)
        {
            Rectangle rect = new Rectangle();
            rect.X = (int)entity.Position.X;
            rect.Y = (int)entity.Position.Y;
            rect.Width = (int)(entity.Width * entity.Scale);
            rect.Height = (int)(entity.Height * entity.Scale);

            return rect;
        }
예제 #6
0
 public static CollisionBoxComponent CheckForSpecificCollision(CollisionBoxComponent entity, short collisionID)
 {
     return CheckForSpecificCollision(entity, collisionID, null);
 }
예제 #7
0
 public static CollisionBoxComponent CheckForCollision(CollisionBoxComponent entity)
 {
     return CheckForCollision(entity, null);
 }