LlGetEnergy/fr
Jump to navigation
Jump to search
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: float llGetEnergy( );149 | N° de fonction |
0.0 | Delais |
10.0 | Energie |
Renvoie un float correspondant à la quantité d'énergie contenue actuellement par l'objet et exprimé en % du maximum.
Exemples
<lsl> // Ce script teste la consommation d'énergie de la plupart des fonctions physiques // 18 mars 2008, par Karzita Zabaleta
vector posDepart; integer compteTimer = 0; integer compteTests = 0;
vaEn(vector origine, vector destination) {
float dist = llVecDist(origine, destination); integer iterations = llCeil( llLog(dist/10.0) / llLog(2.0) ); integer i; list params = [ PRIM_POSITION, destination ];
for (i = 0; i < iterations; i++) params = (params=[]) + params + params;
// Déplace la prim effectivement, à présent llSetPrimitiveParams(params);
}
reviensDepart() {
llSetStatus(STATUS_PHYSICS, FALSE); llSleep(0.2); vaEn(llGetPos(), posDepart); llSetTimerEvent(0); llSetRot(ZERO_ROTATION);
}
default {
state_entry() { posDepart = llGetPos(); llOwnerSay("Masse égale à " + (string) llGetMass()); }
on_rez(integer _n) { llResetScript(); }
touch_start(integer n) { do llSleep(0.5); while (llGetEnergy() < 0.998); llSetPos( llGetPos() + <0,0,5>); llSetStatus(STATUS_PHYSICS, TRUE); llSetTimerEvent(1.0);
vector impulsion = <0,0,5> * llGetMass();
if (compteTests == 0) { llOwnerSay("ApplyImpulse"); llApplyImpulse( impulsion, TRUE ); } else if (compteTests == 1) { llOwnerSay("ApplyRotImpulse"); llApplyRotationalImpulse( impulsion, TRUE); } else if (compteTests == 2) { llOwnerSay("PushObject"); llPushObject(llGetKey(), impulsion, ZERO_VECTOR, TRUE); } else if (compteTests == 3) { llSetForceAndTorque( ZERO_VECTOR, ZERO_VECTOR, TRUE ); llOwnerSay("Force"); llSetForce( impulsion, TRUE ); } else if (compteTests == 4) { llSetForceAndTorque( ZERO_VECTOR, ZERO_VECTOR, TRUE ); llOwnerSay("Torque"); llSetTorque( impulsion, TRUE ); } else if (compteTests == 5) { llSetForceAndTorque( ZERO_VECTOR, ZERO_VECTOR, TRUE ); llOwnerSay("ForceAndTorque"); llSetForceAndTorque( impulsion, impulsion, TRUE ); } else if (compteTests == 6) { llSetForceAndTorque( ZERO_VECTOR, ZERO_VECTOR, TRUE ); llOwnerSay("MoveToTarget"); llMoveToTarget( impulsion, 0.4 ); } else if (compteTests == 7) { llStopMoveToTarget ( ); llOwnerSay("RotLookAt"); llRotLookAt( llEuler2Rot(impulsion * DEG_TO_RAD), 0.4, 0.4 ); } else if (compteTests == 8) { llStopLookAt ( ); llOwnerSay("LookAt"); llLookAt( impulsion, 0.4, 0.4 ); } else if (compteTests == 9) { llStopLookAt ( ); llOwnerSay("HoverHeight"); llSetHoverHeight( 5.0, TRUE, 0.5); } else if (compteTests == 10) { llSetHoverHeight( 0, TRUE, 0.5); llOwnerSay("GroundRepel"); llGroundRepel( 5, TRUE, 0.5); } else if (compteTests == 11) { llGroundRepel( 0, TRUE, 0.5); llOwnerSay("Buoyancy"); llSetBuoyancy( 0.997 ); } else { llSetBuoyancy( 0.0 ); llOwnerSay("Fini"); compteTests = (-1); } llOwnerSay((string) compteTimer + ". energie :" + (string) llGetEnergy()); compteTimer = 0; compteTests++; }
timer() { llOwnerSay((string) compteTimer + ". energie :" + (string) llGetEnergy()); compteTimer++; if (compteTimer > 10) reviensDepart(); }
collision(integer _n) { llOwnerSay((string) compteTimer + ". energie :" + (string) llGetEnergy()); reviensDepart(); }
} </lsl>
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.