예제 #1
0
 /// <summary>
 /// Indica si hay colision entre los rectangulos pertenecientes a lso objetos
 /// </summary>
 /// <param name="o"></param>
 /// <returns>Devuelve true, si ambos objetos estan ocupando el mismo espacio fisico</returns>
 public bool colisionaCon(Objeto o)
 {
     List<Point> puntos = new List<Point>();
     puntos.Add(o.getPosicion());
     puntos.Add(new Point(o.getPosicion().X, o.getPosicion().Y));
     puntos.Add(new Point(o.getPosicion().X, o.getPosicion().Y+o.getAlto()));
     puntos.Add(new Point(o.getPosicion().X+o.getAncho(), o.getPosicion().Y));
     puntos.Add(new Point(o.getPosicion().X+o.getAncho(), o.getPosicion().Y+o.getAlto()));
     foreach (Point p in puntos)
     {
         if (p.X >= this.posicion.X && p.X <= (this.posicion.X + ancho))
         {
             if (p.Y >= this.posicion.Y && p.Y <= (this.posicion.Y + alto))
                 return true;
         }
     }
     return false;
 }
예제 #2
0
        public bool intersecta(Objeto o)
        {
            List<Point> puntos = new List<Point>();
            puntos.Add(o.getPosicion());
            puntos.Add(new Point(o.getPosicion().X, o.getPosicion().Y));
            puntos.Add(new Point(o.getPosicion().X, o.getPosicion().Y + 1));
            puntos.Add(new Point(o.getPosicion().X-1, o.getPosicion().Y + 1));
            puntos.Add(new Point(o.getPosicion().X+1, o.getPosicion().Y + 1));
            puntos.Add(new Point(o.getPosicion().X-1, o.getPosicion().Y));
            puntos.Add(new Point(o.getPosicion().X+1, o.getPosicion().Y));
            puntos.Add(new Point(o.getPosicion().X-1, o.getPosicion().Y - 1));
            puntos.Add(new Point(o.getPosicion().X, o.getPosicion().Y - 1));
            puntos.Add(new Point(o.getPosicion().X + 1, o.getPosicion().Y - 1));

            foreach (Point p in puntos)
            {
                if (p.X == posicion.X && p.Y == posicion.Y)
                    return true;
            }
            return false;
        }