A cloud of wobbly turtles.
Log in to post a comment.
Canvas.setpenopacity(-0.025); const turtle = new Turtle(); const initialSpeed = 2.5; const size = 2; const maxEnergy = 200000; const epsilon = 0.0001; turtle.penup(); turtle.goto(-33, 25); turtle.pendown(); turtle.speed = initialSpeed; turtle.energy = maxEnergy; let turtles = [turtle]; function walk(i) { turtles.forEach((t, idx) => { const sine = Math.sin(Math.PI/1.525+t.energy/maxEnergy*t.speed*i/0.0001); const dir = Math.round(sine); t.forward(size); t.right(t.speed*60*sine); if (Math.abs(sine) + epsilon >= 1) { const newTurtle = t.clone(); newTurtle.speed = t.speed + 0.1; newTurtle.energy = t.energy / 2; newTurtle.seth(t.h()-dir*t.h()%90 - dir*90 + 30); turtles.push(newTurtle); } t.energy *= 0.996; if (t.energy < 10 || t.x() >= 100 || t.x() <= -100 || t.y() >= 100 || t.y() <= -100) { turtles[idx] = null; } }) turtles = turtles.filter(t => t != null); return turtles.length > 0; }