Foros del Web » Programación para mayores de 30 ;) » Java »

Rectangle intersects

Estas en el tema de Rectangle intersects en el foro de Java en Foros del Web. Bueno allí voy! Estoy haciendo un tetris, pero cuando colisiona una ficha con otra, detecta el intersects justo cuando ya a colisionado, lo que seria ...
  #1 (permalink)  
Antiguo 03/06/2011, 19:22
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 4 meses
Puntos: 1
Rectangle intersects

Bueno allí voy!

Estoy haciendo un tetris, pero cuando colisiona una ficha con otra, detecta el intersects justo cuando ya a colisionado, lo que seria justo cuando pasa por la misma casilla que donde estaba la otra, entonces ahi se detiene la ficha y queda una encima de la otra.

Mi pregunta es la mar de sencilla, ¿como puedo hacer que, detecte la colision antes de llegar?

Estoy usando el siguiente metodo de Rectangle:


Código:
			if (i != Juego.contPieza) {
				if (piezas[Juego.contPieza].intersects(piezas[i])) {
					System.out.println("IF Mirar intersects - Dentrop");
					chocado();
				}
			}
Seguro que es la cosa mas tonta del mundo, porque a simple vista me parece una cosa sencilla, pero nose porque, son de esas cosas que no quieren salir! >_<, haber si me podéis echar una mano!

Muchas gracias!
__________________
http://www.isosps3.com/ - Tu web de de PS3, aquí puedes encontrar desde información hasta backups!
  #2 (permalink)  
Antiguo 03/06/2011, 21:03
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Rectangle intersects

Hola,

Cita:
Iniciado por GENESISBM Ver Mensaje
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 original
  1. A = 1000;
  2. if (Arriba) {
  3.   A = A + 1;
  4. } else {
  5.   A = A - 1;
  6. }
  7. if (A > 1) {
  8.   // ¿Ahora que hacemos? ¿Se incremento o decremento A?
  9.   // ¿Como corregimos A?
  10. }
Preventivo:

Código Java:
Ver original
  1. A = 1000;
  2. B = A;
  3. if (Arriba) {
  4.   B = B + 1;
  5. } else {
  6.   B = B - 1;
  7. }
  8. if (B > 1) {
  9.   // No hay problema el valor es de B
  10.   // no hay que corregir A ni nada
  11. } else {
  12.   A = B; // Como es correcto hacemos la acción.
  13. }
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,
  #3 (permalink)  
Antiguo 05/06/2011, 08:54
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Rectangle intersects

Si, es algo obvio, es que no lo veia no era otra cosa >_<, ya esta solucionado!

Muchas gracias de nuevo HackmanC!
__________________
http://www.isosps3.com/ - Tu web de de PS3, aquí puedes encontrar desde información hasta backups!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:35.