2009/4/7 javi . <[email protected]>:
> ¡Hola a toda/os!
>
> Estoy haciendo un pequeño juego/demo , y me he encontrado con un problemilla
> en el tema "Colisiones". Lo que quiero conseguir, es que, en un momento
> determinado a mi elección se compruebe si hay elementos que están tocándose
> y con estos ocurra algo. Los elementos los tengo almacenados en un Vector
> (class Vector).
> A continuación muestro mi código y explico:
>
> for(int i=0;i<vectorSize;i++){
>      for(int j=0;j<vectorSize;j++){
>           if
> ((collisionElement(((HeadElement)heads.elementAt(i)),((HeadElement)heads.elementAt(j)))==
> true) && (i!=j)){
>                                 Integer num= new Integer(i);
>                                 if (!(impactsIndex.contains(num))){ //if NOT
> inside
>                                     impactsIndex.addElement(num);
>
>                                 }
>                                 num= new Integer(j);
>                                 if (!(impactsIndex.contains(num))){
>
>                                     impactsIndex.addElement(num);
>                                 }
>             }
>       }
> }
>

Perdona que no conteste a lo que preguntas, pero espero que te resulte
interesante ;-)

tu haces:
for(int i=0;i<vectorSize;i++){
     for(int j=0;j<vectorSize;j++){
          if (... && (i!=j)){
                ...
          }
      }
}

Cuando podrias hacer:
for(int i=0;i<vectorSize;i++){
     for(int j=i+1;j<vectorSize;j++){
          if (...){
                ...
          }
      }
}

Dado que colision(i,j) == colision(j,i) no tienes que analizar la
matriz completa de posibilidades, solo el triangulillo que se forma de
analizar un indice con los mayores a el.

Un saludo:

Javi
_______________________________________________
Hackademy mailing list
[email protected]
https://listas.sindominio.net/mailman/listinfo/hackademy

Responder a