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