Technique -
Scripts
|
Écrit par ssm2017
|
Jeudi, 15 Novembre 2007 03:08 |
Cette porte est une simple porte a bascule. On clique une fois ca s'ouvre et on clique une fois ca se ferme. Elle possede un timer pour se fermer automatiquement et l'ouverture est progressive.
// ssm2017 Binder complex timed door
// @copyright Copyright (C) 2007 ssm2017 Binder (S.Massiaux). All rights reserved.
// @license GNU/GPL, http://www.gnu.org/licenses/gpl-2.0.html
// ssm2017_authdoor_diaph is free software. This version may have been modified pursuant to the
// GNU General Public License, and as distributed it includes or is derivative
// of works licensed under the GNU General Public License or other free or open
// source software licenses.
// lorsque l'on clique sur la porte, celle ci s'ouvre de la valeur indiquee dans "angle" puis reste ouverte le temps indique dans "duration" et se referme. Cependant si une fois ouverte on clique dessus, elle se referme aussi.
//la valeur de "speed" determine l'angle des crans
integer angle = 90;
float duration = 3.;
float speed = 15.;
integer opened = FALSE;
float act_angle = 0;
default
{
touch_start(integer num_detected)
{
if ( opened )
{
while(act_angle >= 0)
{
llSetRot(llEuler2Rot(<0, 0, act_angle> * DEG_TO_RAD));
act_angle = act_angle - speed;
}
opened = FALSE;
}
else
{
while(act_angle <= (angle-speed))
{
act_angle = act_angle + speed;
llSetRot(llEuler2Rot(<0, 0, act_angle> * DEG_TO_RAD));
}
opened = TRUE;
llSetTimerEvent(duration);
}
}
timer()
{
while(act_angle >= 0)
{
llSetRot(llEuler2Rot(<0, 0, act_angle> * DEG_TO_RAD));
act_angle = act_angle - speed;
}
llResetScript();
}
}
|