User:Toady Nakamura/Touch Toggle Rotate

From Second Life Wiki
< User:Toady Nakamura
Revision as of 11:35, 14 May 2012 by Toady Nakamura (talk | contribs) (added touch toggle rotate script which is a modification of a common freebie with annotations for class)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Make a cylinder that looks like a record or a CD.

Place this script inside...

<lsl> integer spinning = FALSE; default {

   touch_start(integer total_number)
   {
       if(!spinning)  // if not presently spinning
       {
           llTargetOmega(<0.0, 0.0, 1.0>, -PI_BY_TWO, -0.01); //start spinning
           spinning = TRUE; // remember that spinning is now true
       }
       else  // if presently spinning
       {
           llTargetOmega(ZERO_VECTOR, 0, 0);  // stop spin
           spinning = FALSE; // remember that spinning is now false
       }
   }

}

</lsl>


How llTargetOmega works...

  • for the function that reads: llTargetOmega(<0.0, 1.0, 0.0>, TWO_PI, 1);
  • The first parameter is axis of rotation expressed as a vector (<0,1,0>) which will rotate the prim on the Y axis
  • To change the axis to x <1,0,0>... to change it to z <0,0,1> and to reverse direction <-1,0,0>, <0,-1,0>, <0,0,-1>

The second parameter is the rate of rotation in radians per second.

  • PI_BY_TWO (slow counterclockwise), -PI_BY_TWO (slow clockwise)
  • PI (counterclockwise) or -PI (clockwise)
  • TWO_PI (counterclockwise) or -TWO_PI (clockwise)

The third parameter is the gain. (should not equal zero - subtle effect)