Difference between revisions of "FastConeSpread"
Jump to navigation
Jump to search
m |
m (added example and removed a single instruction/bug) |
||
Line 14: | Line 14: | ||
touch_start( integer d ){ | touch_start( integer d ){ | ||
float x = (llFrand(1)-0.5)*PI; | float x = (llFrand(1)-0.5)*PI; | ||
float y = | float y = llFrand(0.5)*Spread; | ||
rotation rSpread = <0,llSin(y),0,llCos(y)> * <llSin(x),0,0,llCos(x)>; | rotation rSpread = <0,llSin(y),0,llCos(y)> * <llSin(x),0,0,llCos(x)>; | ||
llSetRot( rSpread ); | llSetRot( rSpread ); | ||
// Example with rezzing a bullet: | |||
// rSpread *= llGetRot(); | |||
// llRezObject("b",llGetPos()+llRot2Fwd(rSpread), <60,0,0>*rSpread, rSpread, 1 ); | |||
} | } | ||
} | } |
Revision as of 10:59, 1 March 2010
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
<lsl> // 2009, Nexii Malthus // Public Domain
float Spread = 15.0;
default{
state_entry(){ Spread *= DEG_TO_RAD; } touch_start( integer d ){ float x = (llFrand(1)-0.5)*PI; float y = llFrand(0.5)*Spread; rotation rSpread = <0,llSin(y),0,llCos(y)> * <llSin(x),0,0,llCos(x)>; llSetRot( rSpread ); // Example with rezzing a bullet: // rSpread *= llGetRot(); // llRezObject("b",llGetPos()+llRot2Fwd(rSpread), <60,0,0>*rSpread, rSpread, 1 ); }
} </lsl>
<lsl> // 2008-2009, Aeron Kohime // Licensed under the Creative Commons Attribution 3.0 License // http://creativecommons.org/licenses/by/3.0/
float spread = 15.0;
default{
state_entry(){ spread *= DEG_TO_RAD; } touch_start( integer d ){ float y = spread*(llFrand(1)-0.5); float z = spread*(llFrand(1)-0.5); rotation rSpread = llEuler2Rot(<0,y,z>); llSetRot( rSpread ); }
} </lsl>