jeudi 27 décembre 2007

llGetScale

Notre script de porte commence à prendre tournure. Grâce à la fonction llGetScale, on obtient les dimensions de notre objet retournées par un vecteur. Il existe aussi la fonction llSetScale qui permet de définir la taille d'un objet.
Et aujourd'hui on découvre que l'on peut extraire la longueur, largeur, hauteur rien qu'en rajoutant un point après le nom du vecteur. L'avantage de travailler en fonction de la largeur c'est que quelque soit les dimension de votre porte votre script marchera sans le modifier.
Il nous reste un problème majeur, vous ferez le test, si vous tournez à 45° votre porte, elle ne s'ouvre pas dans le bon sens. On verra ça demain.

// défini un vecteur pour la position de l'objet
vector pos;
default
{
touch_start(integer total_number)
{
vector size;
integer largeur;

// sauvegarde la position initiale
pos=llGetPos();

// recupère les dimension de l'objet
size=llGetScale()

// ici on ne récupère que la composante y du vecteur
// il est en effet possible de récupérer
// que l'une des composantes d'un vecteur
// en suffixant la variable par un point et la lettre composante (x,y,z)
largeur=size.y;

// on redéfini l'emplacement de l'objet en le décalant de sa largeur
// sur l'axe des y
llSetPos(pos+<0,largeur,0>);

// delenchera l'evenement timer dans 20 secondes
llSetTimerEvent(20);
}
timer()
{
//remet en place l'objet
llSetPos(pos);

//empêche le déclenchement de l'evenement timer
llSetTimerEvent(0);
}
}

Aucun commentaire: