32 lines, 4 of them comments ยท 2,078 tokens, written in 16 seconds for $0.0031


 1  let x, y;
 2  let vx, vy;
 3  let colorR, colorG, colorB;
 4  
 5  function setup() {
 6    createCanvas(400, 400);
 7    x = width / 2;
 8    y = height / 2;
 9    vx = random(2, 5);
10    vy = random(2, 5);
11    colorR = random(255);
12    colorG = random(255);
13    colorB = random(255);
14  }
15  
16  function draw() {
17    background(240);
18    // Update position
19    x += vx;
20    y += vy;
21    // Bounce off edges
22    if (x < 0 || x > width) vx = -vx;
23    if (y < 0 || y > height) vy = -vy;
24    // Change color based on position
25    colorR = map(x, 0, width, 0, 255);
26    colorG = map(y, 0, height, 0, 255);
27    colorB = (colorR + colorG) % 255;
28    // Draw circle
29    fill(colorR, colorG, colorB);
30    noStroke();
31    ellipse(x, y, 50);
32  }