at_rot_target
Se ejecuta cuando el target de tipo rotational es alcanzado tras la ejecución de la función llRotTarget
Se utiliza para controlar cuando llega a una posición de rotación definida como objetivo.
Se puede utilizar conjuntamente con el evento not_at_rot_target y la función llRotTargetRemove
Su forma es la siguiente:
at_rot_target( integer handle, rotation targetrot, rotation ourrot )
{
}
Ejemplo:
Explicacion:
El concepto del uso de llRotTarget y los eventos at_rot_target y not_at_rot_target es el siguiente:
El script esta basado en 2 estados, el estado default (por defecto) y el estado tras la rotación (state rotatestate).
De igual manera, se va cambiando del evento at_rot_target a not_at_rot_target, segun el angulo de rotación que tenga el prim.
Ambos eventos son ejecutados con la llamada de la función llRotTarget.
Quedan preparados en espera de que el prim rote a la rotación definida en las variables.
El objetivo (posicion de rotacion) que devuelve la función llRotTarget es registrada en la variable rottarget.
Cuando tocamos el prim se ejecuta el primer touch_start, el cual nos cambia de estado, pasando al estado de nombre rotatestate.
Cuando el prim rota, tras la orden de rotación con la funcion llSetPrimitiveParams ([PRIM_ROTATION,....., all llegar a 45 grados en X, se ejecutara el evento at_rot_target, ya que ha llegado al objetivo de la rotación.
Dentro de este evento, se resetea la variable rottarget (se borra el objetivo) con la función llRotTargetRemove.
Despues del evento at_rot_target, se encuentra el evento touch_start. Cuando se toque de nuevo el prim, volvera al estado default, dara nuevo valor de rotacion a la variable rottarget y girara otra vez. Esta ves el objetivo de la rotación es 0 grados en x.
Así, se va cambiando de posición de rotacion cada vez que se toque el prim.
Eventos relacionados:
not_at_rot_target
not_at_target
Funciones relacionados:
llTarget
llTargetRemove
llRotTarget
llRotTargetRemove