Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/04/2013, 05:08
japarisid
 
Fecha de Ingreso: mayo-2012
Ubicación: Valencia
Mensajes: 67
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Detectar cuando se cruzan dos div's

Buenas,

No consigo sacarlo, lo explico para ver si alguien me puede ayudar.
Estoy haciendo un pequeño jueguecillo muy simple que tiene un div fijo en el medio de la pantalla y uno pequeño dentro que lo voy moviendo con las flechas del teclado.
Luego por javascript voy generando unos más pequeños aleatoriamente para que el otro los recoja.

Mi problema es que no consigo sacar exactamente cuando se cruzan los dos cuadros.
Todo lo demás(generarlos, mover, etc) ya funciona.

Esta es la función que ejecuto en un setInterval() cada muy poco para comprobar si los dos cuadros se están tocando.

Código:
function comprobar() {
	swx = false;
	swy = false;
	//POSICION ACTUAL DEL CUADRO QUE SE MUEVE
	var fijo = document.getElementById("mov");
	var fijoy = parseInt(fijo.style.top, 10);
	var fijox = parseInt(fijo.style.left, 10);
	//POSICION ACTUAL DEL CUADRO RANDOM
	var random = document.getElementById("random");
	var randomy = parseInt(random.style.top, 10);
	var randomx = parseInt(random.style.left, 10);
	
	for (x=fijox;x<=(fijox+20);x++) {
		for (y=randomx;y<(randomx+20);y++) {
			if (x == y) {
				swx = true;
			}
		}
	}
	for (x=randomy;x<=(randomy+20);x++) {
		for (y=fijoy;y<=(fijoy+20);y++) {
			if (x == y) {
				swy = true;
			}
		}
	}
	
	
	if(swx==true && swy==true) {
		crear();
	}
	
}
Los 2 cuadros son de 20x20 pixels. Como se ve en el código, obtengo las posiciones de los cuadros e intento comparar las posiciones horizontal y vertical y si ambas se cruzan en algún punto llamo a crear(); para generar otro cuadro aleatorio.

En el eje x me funciona perfectamente. Pero tengo problemas en el eje y. Paso por encima del cuadro que tengo que recoger y me cuenta como si lo tocara, y otras veces paso por en medio y no cuenta.

Alguna idea?
Gracias.