// Float Schweben - sanftes Schweben/Schwingen fuer einen Prim // Bewegt den Prim weich auf und ab per Sinus-Kurve. // Laeuft eigenstaendig, kann neben anderen Skripten (z.B. Licht) im selben Prim liegen. // ---- Einstellungen ---- float AMPLITUDE = 0.15; // Wie weit hoch/runter (in Metern). Kleiner = subtiler. float PERIODE = 4.0; // Dauer einer kompletten Schwingung in Sekunden. Groesser = langsamer. float FPS = 20.0; // Aktualisierungen pro Sekunde. Hoeher = glatter, mehr Last. // ---- intern ---- vector gBasis; // Ausgangsposition (lokal) float gT; // Zeitzaehler init() { gBasis = llGetLocalPos(); gT = 0.0; llSetTimerEvent(1.0 / FPS); } default { state_entry() { init(); } on_rez(integer p) { init(); } timer() { gT += 1.0 / FPS; // Sinus schwingt weich zwischen -1 und +1, kein hartes Auf-Ab float offset = AMPLITUDE * llSin(gT * TWO_PI / PERIODE); vector p = gBasis; p.z += offset; llSetPos(p); // Zeit zuruecksetzen, damit sie nicht ewig waechst if (gT > PERIODE) gT -= PERIODE; } }