private void dibujarPasoDeCebra(Graphics grafico, PasoDeCebra pasoDeCebra) { int x = (int)pasoDeCebra.X; int y = (int)pasoDeCebra.Y; int diferencia = 0, diferencia2 = 0; Color color = Configuracion.COLORPASODECEBRA; if(Modificar.eliminarSeñaleticas && Modificar.estaSobre(pasoDeCebra)) { color = Configuracion.COLORRESALTAR; } if(pasoDeCebra.Orientacion == Elemento.OESTE || pasoDeCebra.Orientacion == Elemento.NORTE) diferencia = pasoDeCebra.Ancho; if (pasoDeCebra.Orientacion == Elemento.SUR || pasoDeCebra.Orientacion == Elemento.OESTE) diferencia2 = 36; if (pasoDeCebra.obtenerOrientacionSimple() == Elemento.VERTICAL) { grafico.FillRectangle (new SolidBrush (color), x+2-diferencia2, y-diferencia, 3, pasoDeCebra.Ancho); grafico.FillRectangle (new SolidBrush (color), x+8-diferencia2, y-diferencia, 3, pasoDeCebra.Ancho); grafico.FillRectangle (new SolidBrush (color), x+15-diferencia2, y-diferencia, 3, pasoDeCebra.Ancho); grafico.FillRectangle (new SolidBrush (Configuracion.COLORCALLE), x+18-diferencia2, y-diferencia, 1, pasoDeCebra.Ancho);//Elimina la linea de la calle grafico.FillRectangle (new SolidBrush (color), x+21-diferencia2, y-diferencia, 3, pasoDeCebra.Ancho); grafico.FillRectangle (new SolidBrush (color), x+27-diferencia2, y-diferencia, 3, pasoDeCebra.Ancho); grafico.FillRectangle (new SolidBrush (color), x+33-diferencia2, y-diferencia, 2, pasoDeCebra.Ancho); this.dibujarID (grafico, pasoDeCebra.Id, Elemento.HORIZONTAL, x+4, y+4-diferencia); } else if(pasoDeCebra.obtenerOrientacionSimple() == Elemento.HORIZONTAL) { grafico.FillRectangle (new SolidBrush (color), x-diferencia, y+2-diferencia2, pasoDeCebra.Ancho, 3); grafico.FillRectangle (new SolidBrush (color), x-diferencia, y+8-diferencia2, pasoDeCebra.Ancho, 3); grafico.FillRectangle (new SolidBrush (color), x-diferencia, y+15-diferencia2, pasoDeCebra.Ancho, 3); grafico.FillRectangle (new SolidBrush (Configuracion.COLORCALLE), x-diferencia, y+18-diferencia2, pasoDeCebra.Ancho, 1);//Elimina la linea de la calle grafico.FillRectangle (new SolidBrush (color), x-diferencia, y+21-diferencia2, pasoDeCebra.Ancho, 3); grafico.FillRectangle (new SolidBrush (color), x-diferencia, y+27-diferencia2, pasoDeCebra.Ancho, 3); grafico.FillRectangle (new SolidBrush (color), x-diferencia, y+33-diferencia2, pasoDeCebra.Ancho, 2); this.dibujarID (grafico, pasoDeCebra.Id, Elemento.VERTICAL, x+4-diferencia, y+4-diferencia2); } }
public static bool estaSobre(PasoDeCebra elemento) { int x = (int)elemento.X; int y = (int)elemento.Y; if (elemento.Orientacion == Elemento.NORTE) y -= elemento.Ancho; if (elemento.Orientacion == Elemento.OESTE) x -= elemento.Ancho; int xR = Modificar.posX; int yR = Modificar.posY; int diferencia = 0; if (elemento.Orientacion == Elemento.SUR || elemento.Orientacion == Elemento.OESTE) diferencia = 36; int ancho = elemento.Ancho; if (elemento.obtenerOrientacionSimple () == Elemento.VERTICAL && xR >= x-diferencia && xR <= x + 30-diferencia && yR >= y && yR <= y + ancho) { idElementoEliminar = elemento.Id; return true; } if (elemento.obtenerOrientacionSimple () == Elemento.HORIZONTAL && xR >= x && xR <= x + ancho && yR >= y-diferencia && yR <= y + 30-diferencia) { idElementoEliminar = elemento.Id; return true; } if (idElementoEliminar == elemento.Id) idElementoEliminar = -1; return false; }