永远循环

时间:2018-04-20 12:17:16

标签: javascript p5.js

尝试制作一个简单的JS,设置随机背景颜色,然后在随机位置创建i点。然而,它在i的集合中产生无限的点。所以,如果我设置i< 10,一次制作10个点。

用崇高的p5库进行编码。

function setup() {
     r = random(0,255);
     g = random(0,255);
     b = random(0,255);
     createCanvas(window.innerWidth,window.innerHeight);
     background(r,g,b);
     frameRate(1);
}

function draw() {
    for (var i = 0; i < 3; i++) {
        fill(0);
        noStroke();
        ellipse(random(0, width), random(0, height), 80,80);
        }
}

1 个答案:

答案 0 :(得分:0)

p5框架在每一帧上调用draw()函数。因此,您将在每个帧中创建一组新的点。你应该为draw函数之外的点创建(x,y)位置,将它们存储在一个数组中,然后只在draw函数中渲染它们。

var dots = []; 

function setup() {
    r = random(0,255);
    g = random(0,255);
    b = random(0,255);
    createCanvas(window.innerWidth,window.innerHeight);
    background(r,g,b);
    frameRate(1);
    createDots();
}

function createDots() {
    for (var i = 0; i < 3; i++) {
        var dot = {
            x : random(0, width),
            y : random(0, height)
        };
        dots.push(dot);
    }
}

function draw() {
    for (var i = 0; i < 3; i++) {
        fill(0);
        noStroke();
        var dot = dots[i];
        ellipse(dot.x, dot.y, 80, 80);
    }
}