执行一个函数 5 秒
executing a function for 5 seconds
我正在尝试在 p5.js 中做一个加载栏,我在顶部有一个栏,就像 YouTube 加载栏一样。
像这样
var x = 0;
function setup() {
createCanvas(400, 400);
x = width;
}
function draw() {
background(220);
stroke(255,0,0);
strokeWeight(10);
line(0,0,x,0);
}
我想使用 map()
函数来减少线条的宽度。
map(x, width , 0 , second(),second()+5);
注意:使用p5.js库
首先x
不应该等于width
。它应该从 0
开始,然后只根据时间更新。
其次second()
returns当前时间的实际秒数,所以不适合这种情况。最好使用 millis()
项目开始后的 returns 毫秒数。
最后你使用的 map
参数有误( 或者至少我不明白你试图用传递给它们的顺序做什么)
x = map(millis(), 0, 5000, 0 , width);
以上会将毫秒范围0 - 5000
(0到5秒)映射到canvas的0 - width
。
为了能够随时初始化柱,然后使用变量作为值范围的 start/end 个值。
var x,
startAt;
function setup() {
createCanvas(400, 400);
startAt = millis();
}
function draw() {
background(220);
stroke(255, 0, 0);
strokeWeight(10);
x = map(millis(), startAt, startAt + 5000, 0, width);
line(0, 0, x, 0);
}
function mouseClicked() {
startAt = millis();
}
在此示例中,无论何时单击,栏都会重新启动。
工作示例在 http://alpha.editor.p5js.org/gpetrioli/sketches/SyibBz_ff
我正在尝试在 p5.js 中做一个加载栏,我在顶部有一个栏,就像 YouTube 加载栏一样。
像这样
var x = 0;
function setup() {
createCanvas(400, 400);
x = width;
}
function draw() {
background(220);
stroke(255,0,0);
strokeWeight(10);
line(0,0,x,0);
}
我想使用 map()
函数来减少线条的宽度。
map(x, width , 0 , second(),second()+5);
注意:使用p5.js库
首先x
不应该等于width
。它应该从 0
开始,然后只根据时间更新。
其次second()
returns当前时间的实际秒数,所以不适合这种情况。最好使用 millis()
项目开始后的 returns 毫秒数。
最后你使用的 map
参数有误( 或者至少我不明白你试图用传递给它们的顺序做什么)
x = map(millis(), 0, 5000, 0 , width);
以上会将毫秒范围0 - 5000
(0到5秒)映射到canvas的0 - width
。
为了能够随时初始化柱,然后使用变量作为值范围的 start/end 个值。
var x,
startAt;
function setup() {
createCanvas(400, 400);
startAt = millis();
}
function draw() {
background(220);
stroke(255, 0, 0);
strokeWeight(10);
x = map(millis(), startAt, startAt + 5000, 0, width);
line(0, 0, x, 0);
}
function mouseClicked() {
startAt = millis();
}
在此示例中,无论何时单击,栏都会重新启动。
工作示例在 http://alpha.editor.p5js.org/gpetrioli/sketches/SyibBz_ff