private double compa;
private double compi;
private double compo;
private double compu;
Dentro del ciclo while se usa esas variables para comparar la distancia del círculo a una línea específica.
while(i.hasNext()){
Linea l = i.next();
gr.draw(new Line2D.Double(l.xs*ancho, l.ys*altura,l.xf*ancho,l.yf*altura));
compa =l.xs-(this.x);
compi =l.ys-(this.y);
compo =l.xf-(this.x);
compu =l.yf-(this.y);
Ya una vez establecidos esos valores se recurre a las condiciones de que sean menor de los puntos "x" y "y" del círculo:
if((l.xs< l.xf ||l. ys< l.yf){ // Se establece si la línea se dibuja de izquierda a derecha o de arriba hacia abajo
if(compa
if(compi<0.05&&compi>-0.01){
this.reset();
System.out.println("TOCASTE UNA LÍNEA!!! D:");
}
}else if(compi<0&&compu>0){ //Este if es para líneas verticales
if(compa<0.05>-0.01){
reset();
System.out.println("TOCASTE UNA LÍNEA!!! D:");
}
}
if(compo<0&&compa>0){
this.reset();
System.out.println("TOCASTE UNA LÍNEA!!! D:");
}
}else if(compu<0&&compi>0){
reset();
System.out.println("TOCASTE UNA LÍNEA!!! D:");
}
}
Hay 2 if's importantes que son cuando la línea se dibuja de izquierda a derecha o viceversa, o también de arriba hacia abajo o viceversa, así que el jugador podrá dibujar las líneas como desee, pero tendrán que ser líneas rectas.
Bueno aquí el código para descargar y disfruten haciendo laberintos y tratar d
:)
ResponderEliminar