James Houston, a Glasgow School of Art’s graphic design graduate created a live performance of Radiohead - Nude on a bunch of pc components. Very impressive.
Sinclair ZX Spectrum - Guitars (rhythm & lead)
Epson LX-81 Dot Matrix Printer - Drums
HP Scanjet 3c - Bass Guitar
Hard Drive array - Act as a collection of bad speakers - Vocals & FX

epson, hp, music video, spectrum, vimeo
It’s good practice to make code easy to maintain, so sometimes you’ll want to use less code using recursive functions. In order to find out how to this works in Second Life I created this small recusive example:
integer i = 0;
integer top = 0;
integer Monkeys()
{
llOwnerSay("monkeys");
i++;
if (i <= top)
return Monkeys();
else
return i;
}
default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
}
touch_start(integer total_number)
{
i = 0;
top = Monkeys();
llOwnerSay((string)top);
}
}
This script says monkeys an increasing amount of times every time you touch it by calling itself if and keeping track of the total amount of times the function is called. First time there will be 1 monkey, next time 2 monkeys etc. Find more products at our shop in Badmoon.
I had to create a simple script to turn a neon sign on and off. I decided to have both versions of the sign in a single texture and changing the offset with a script. Instead of using a timer and using llSetTimeout() instead I opted to pause the script for a small amount of time. The script does not respond when it’s sleeping which should be less laggy then the timeout. All i do then at the start of a state is offsetting the texture to show the on/off alternatively.
default
{
state_entry()
{
llOffsetTexture(0.0,0.25,ALL_SIDES);
llSleep(1.37);
state off;
}
}
state off
{
state_entry()
{
llOffsetTexture(0.0,0.75,ALL_SIDES);
llSleep(.723);
state default;
}
}
Hope this is of use to you. See the result in our Higher / Lower game at Badmoon.