Color Cycle

From Second Life Wiki
Revision as of 11:10, 29 February 2008 by JB Kraft (talk | contribs) (New page: =====Cycle through the color wheel===== Cycles through color wheel at 15 degree intervals every second. <lsl> // Cycle color each second for every 15 degress around the color wheel // @a...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Cycle through the color wheel

Cycles through color wheel at 15 degree intervals every second.

<lsl> // Cycle color each second for every 15 degress around the color wheel // @author: JB Kraft // ------------------------------------------------------------------------ // Jan 28, 2007 - v0.1 orig example code // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

// 24 color values, one for each 15 degrees around the color wheel list realcolors = [ <1.000000, 0.000000, 0.000000>, <1.000000, 0.200000, 0.000000>, <1.000000, 0.400000, 0.000000>, <1.000000, 0.501961, 0.000000>, <1.000000, 0.600000, 0.000000>, <1.000000, 0.698039, 0.000000>, <1.000000, 0.800000, 0.000000>, <1.000000, 0.898039, 0.000000>, <1.000000, 1.000000, 0.000000>, <0.800000, 1.000000, 0.000000>, <0.200000, 1.000000, 0.000000>, <0.000000, 0.800000, 0.000000>, <0.000000, 0.698039, 0.400000>, <0.000000, 0.600000, 0.600000>, <0.000000, 0.400000, 0.698039>, <0.000000, 0.200000, 0.800000>, <0.098039, 0.098039, 0.698039>, <0.200000, 0.000000, 0.600000>, <0.250980, 0.000000, 0.600000>, <0.400000, 0.000000, 0.600000>, <0.600000, 0.000000, 0.600000>, <0.800000, 0.000000, 0.600000>, <0.898039, 0.000000, 0.400000>];

// keep time integer g_TIMER = 0; // the offset into the color array integer g_NDX = 0;

// ------------------------------------------------------------------------ // D E F A U L T // ------------------------------------------------------------------------ default {

   // --------------------------------------------------------------------
   state_entry()
   {
   }
   // --------------------------------------------------------------------
   touch_start(integer total_number)
   {
       // turn the timer on/off        
       g_TIMER = !g_TIMER;
       // cheeky use of flag as timer value
       llSetTimerEvent( g_TIMER );
   }
   
   
   // --------------------------------------------------------------------
   timer( )
   {
       if( g_NDX > llGetListLength( realcolors ) - 1) {
           g_NDX = 0;
       }
       llSetColor( llList2Vector( realcolors, g_NDX), ALL_SIDES );
       ++g_NDX;
   }

}

</lsl>