Snakes!
Snake lights
by jhalderm
HTML
<script src="http://141.212.120.173/client.js"></script>
JavaScript
// Snakes!
(new Blinken()).run(function (lights) {
function Snake(position, size, speed, color) {
this.start = position;
this.end = (position+size) % lights.length;
this.speed = speed;
this.color = color;
this.move = function() {
this.start = (this.start + this.speed) % lights.length;
if (this.start < 0) { this.start += lights.length; }
this.end = (this.end + this.speed) % lights.length;
if (this.end < 0) { this.end += lights.length; }
};
this.draw = function() {
var x = this.start;
while (x != this.end) {
lights[x].rgb(lights[x].r+this.color.r,lights[x].g + this.color.g,lights[x].b + this.color.b);
x = (x + 1) % lights.length;
}
};
}
var snakes = [new Snake(0, 20, 1, {r:1,g:0,b:0}),
new Snake(79, 20, -1, {r:0,g:1,b:0}),
new Snake(45, 10, 2, {r:0,g:0,b:1})];
return function () {
for (var j=0; j < lights.length; j++) { lights[j].rgb(0,0,0); }
for (var i=0; i < snakes.length; i++) {
snakes[i].move();
snakes[i].draw();
}
return 50;
};
})