miércoles, 7 de julio de 2010

PROGRAMA EVITAR OBSTACULOS O LABERINTO

Bueno este es el programa anterior ya corregido, el jugador puede dibujar sus propias líneas como obstáculos y cuando el círculo toca esas líneas se reinicia el juego. Le puse 4 variables que son el punto de comparación entre el círculo y los puntos iniciales y finales de cada línea, que son:
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<0)&&(compo>0)){ //este if es para líneas horizontales
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(l.xs>l.xf||l.ys>l.yf){ // Se establece si la línea se dibuja de derecha a izquierda o de abajo hacia arriba
if(compo<0&&compa>0){
//este if es para líneas horizontales
if(compi<0.05&&compi>-0.01){
this.reset();
System.out.println("TOCASTE UNA LÍNEA!!! D:");
}
}else if(compu<0&&compi>0){
//Este if es para líneas verticales
if(compa<0.05>-0.01){
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
e pasarlos =)



http://www.mediafire.com/?arz55nuhilz




1 comentario: