top of page

collision

Se ejecuta cuando un avatar o un objeto colisiona con el objeto que contiene el script.

Se mantiene activo hasta que dejen de tocarse.

 

Su forma es la siguiente:

 

collision( integer num_detected )

{

 

}

 

El número de objetos o avatares detectados se pasa al script en la variable num_detected.

El número maximo de detecciones que puede detectar es de 8.

El menor rango de tiempo de deteccion es approximadamente de 0,13 segundos.

No detecta cuando se colisiona contra el suelo. Para eso utilizar el evento land_collision.

No detecta cuando un avatar está sentado en un objeto, aunque este colisionando. Para eso utilizar el evento changed.

Los objetos que sean fantasmas no detectan la colision.

La funcion llVolumeDetect acciona los eventos collision_start y collision_end pero no el evento collision.

Una colision con un avatar flotando no acciona el evento collision, a no ser que el avatar se gire o se mueva .

Solo un objeto fisico podrá accionar el evento de collision al colisionar contra un objeto no-fisico.

 

Ejemplo:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Imaginemos que el prim que contiene el script tiene forma de una pared o una puerta.

En este ejemplo el prim se convierte en fantasma cuando alguien de la lista definida choque con el,

dejando pasar por el prim solo a los que tengan permiso.

 

Se define una variable de tipo list con nombre acces_list. Esta variable contiene 3 variables de tipo string que son los nombres de 3 avatares, los cuales tendrán permiso para atravesar la pared/puerta.

Cuando alguien choca contra el prim, se ejecuta el evento collision.

Si el nombre detectado con la funcion llDetectedName se encuentra dentro de la variable access_list, cambia el estado del prim a fantasma.

Esto ultimo lo hace con la función llSetStatus.

Si el nombre detectado no se encuentra dentro de access_list, no sucede nada, por tanto, no deja pasar al avatar desconocido.

 


Algunos eventos relacionados:

 

• collision_start

• collision_end

 

Algunas funciones relacionadas:

 

• llPassCollisions

• llCollisionFilter

• llCollisionSound

• llCollisionSprite

• llVolumeDetect

 

 

bottom of page