Hola,
Cita:
Iniciado por GENESISBM Mi pregunta es la mar de sencilla, ¿como puedo hacer que, detecte la colision antes de llegar?
Esas son condiciones básicas de programación, hay dos tipos de estructuras para controlar errores, preventivo y correctivo. En tu caso estas tratando de aplicar correctivo cuando evidentemente ya no se puede corregir (a mas reviertas el movimiento anterior). Por ejemplo:
Correctivo:
Código Java:
Ver originalA = 1000;
if (Arriba) {
A = A + 1;
} else {
A = A - 1;
}
if (A > 1) {
// ¿Ahora que hacemos? ¿Se incremento o decremento A?
// ¿Como corregimos A?
}
Preventivo:
Código Java:
Ver originalA = 1000;
B = A;
if (Arriba) {
B = B + 1;
} else {
B = B - 1;
}
if (B > 1) {
// No hay problema el valor es de B
// no hay que corregir A ni nada
} else {
A = B; // Como es correcto hacemos la acción.
}
En tu caso tienes que hacer una copia del Rectangle antes de hacer el movimiento, realizas el movimiento en la copia, después comparas si no hay intersección con la copia, si no hay intersección con la copia entonces realizas el movimiento en el original.
Saludos,